CommunityProgramación y desarrollogithub.com

triaje-de-seguridad

Realiza el triaje de avisos de seguridad, borradores e informes GHSA de OpenClaw con verificación de versiones publicadas y modelo de confianza.

¿Qué es triaje-de-seguridad?

Este skill automatiza el proceso de triaje de avisos de seguridad para el proyecto OpenClaw. Su objetivo principal es ayudar a los mantenedores a decidir con alta confianza si un aviso debe cerrarse, mantenerse abierto o acotarse, evitando tanto cerrar problemas reales como introducir regresiones innecesarias. El skill se integra con GitHub Advisory Database (GHSA) y utiliza comandos de Git y npm para verificar el estado de las versiones publicadas, el historial de etiquetas y la presencia de correcciones. También aplica un modelo de confianza definido en `SECURITY.md`, evalúa la ruta de explotación, el comportamiento publicado y las compensaciones funcionales. Está diseñado para su uso en sistemas como Claude Code, Cursor, Codex u otros agentes de IA que trabajen con el repositorio openclaw/openclaw. Su flujo de trabajo es secuencial, revisando un aviso a la vez, redactando comentarios listos para mantenedores y copiándolos al portapapeles para su revisión manual. Incluye pautas estrictas sobre la redacción pública, evitando exponer detalles técnicos sensibles como hashes de commits o números de PR en los textos públicos de los avisos.

Compatible con~Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/clawdbot/clawdbot/tree/main/.agents/skills/security-triage

Installed? Explore more Programación y desarrollo skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Triaje de Seguridad

Úsese al revisar avisos de seguridad, borradores o informes GHSA de OpenClaw.

Objetivo: triaje de mantenedores con alta confianza sin cerrar problemas reales ni enviar regresiones innecesarias.

Criterio de Cierre

Cerrar solo si se cumple una de estas condiciones:

  • duplicado de un aviso existente o un problema ya corregido
  • no válido contra el comportamiento publicado
  • fuera del alcance según SECURITY.md
  • corregido antes de cualquier versión/etiqueta afectada

No cerrar solo porque main está corregido. Si la última etiqueta publicada o la versión de npm está afectada, mantener abierto hasta que se publique o libere con el estado correcto.

Lecturas Obligatorias

Antes de responder:

  1. Leer SECURITY.md.
  2. Leer el cuerpo del GHSA con gh api /repos/openclaw/openclaw/security-advisories/<GHSA>.
  3. Inspeccionar las rutas de código exactas implicadas.
  4. Verificar el estado publicado:
    • git tag --sort=-creatordate | head
    • npm view openclaw version --userconfig "$(mktemp)"
    • git tag --contains <fix-commit>
    • si es necesario: git show <tag>:path/to/file
  5. Buscar superposición canónica:
    • GHSA publicados existentes
    • errores antiguos corregidos
    • misma clase de modelo de confianza ya cubierta en SECURITY.md

Método de Revisión

Para cada aviso, decidir:

  • close
  • keep open
  • keep open but narrow

Por defecto, un aviso a la vez cuando se involucran comentarios/cierres:

  1. Revisar exactamente un GHSA.
  2. Imprimir la URL del GHSA primero.
  3. Resumir la decisión y las pruebas para discusión.
  4. Redactar un comentario listo para mantenedor.
  5. Copiar solo ese comentario al portapapeles.
  6. Parar y esperar a que Peter publique/discuta antes de pasar al siguiente GHSA.

No agrupar múltiples comentarios de cierre a menos que Peter lo solicite explícitamente.

Verificar en este orden:

  1. Modelo de confianza
    • ¿El prerrequisito ya está dentro del estado de host/local/plugin/operador de confianza?
    • ¿SECURITY.md menciona explícitamente esta clase como fuera de alcance o solo como endurecimiento?
  2. Comportamiento publicado
    • ¿El error está presente en la última etiqueta publicada o versión de npm?
    • ¿Fue corregido antes de la publicación?
  3. Ruta de explotación
    • ¿El informe muestra una verdadera evasión de límites, no solo inyección de prompt, control local del mismo usuario o semántica de nivel de ayuda?
    • Si los datos solo se mueven entre archivos de memoria de espacio de trabajo de confianza mencionados en SECURITY.md, no tratar los "marcadores de inyección" por sí solos como un error de seguridad.
    • En ese caso, enmarcar la sanitización como endurecimiento opcional solo si preserva los flujos de memoria esperados.
  4. Compensación funcional
    • Si un cambio de endurecimiento reduciría la funcionalidad prevista para el usuario, señalarlo antes de proponerlo.
    • Preferir correcciones que preserven los flujos de trabajo del usuario sobre regresiones de denegación por defecto a menos que el límite lo exija.
  5. Seguimiento de endurecimiento
    • Incluso cuando el GHSA deba cerrarse, preguntar si un cambio de endurecimiento acotado reduciría riesgos sin cambiar el límite de confianza documentado.
    • Separar el endurecimiento del estado de vulnerabilidad. Expresarlo como "no requerido para el cierre del GHSA, pero vale la pena considerarlo".
    • Mencionar el endurecimiento solo si es concreto, de bajo riesgo y preserva los flujos de trabajo previstos del mantenedor/operador.
    • Si el endurecimiento requiriera un cambio en el modelo de producto/seguridad, decirlo explícitamente y no implicar que es una corrección requerida para el cierre.

Formato de Respuesta

Al preparar una respuesta de cierre lista para mantenedor:

  1. Imprimir la URL del GHSA primero.
  2. Luego redactar una respuesta detallada que el mantenedor pueda publicar.
  3. Incluir:
    • razón exacta del cierre
    • referencias de código exactas
    • hechos exactos de etiqueta/versión publicada
    • procedencia de la corrección o GHSA duplicado canónico cuando corresponda
    • nota de endurecimiento opcional solo si vale la pena y preserva funcionalidad

Mantener un tono firme, específico y no defensivo.

Higiene de Redacción Pública

  • Mantener los hashes de commit en crudo, títulos/números de PR y resúmenes del mecanismo de corrección fuera del texto público del aviso. Usar solo el campo de versión/liberación parcheada.
  • Mantener los SHAs de commit exactos, PRs y notas de implementación en notas internas y archivos de verificación.
  • Para resultados de endurecimiento/sin publicación, no añadir detalles con mucho contenido de explotación, texto "Corregido por" o una sección "Commit(s) de corrección". Agradecer a los reporteros, preservar el crédito, indicar el límite de SECURITY.md y decir claramente que el GHSA se cerrará sin publicación.
  • Para texto de CVE/GHSA publicado, preferir ### Versiones Parcheadas con la versión corregida. No explicar cómo funciona el parche a menos que Peter lo solicite explícitamente para ese detalle público.
  • Mantener los IDs de GHSA fuera del registro de cambios y de la redacción de notas de publicación a menos que Peter lo solicite explícitamente.

Modo de Discusión

Cuando Peter esté publicando comentarios GHSA manualmente, usar este flujo:

  1. Mostrar la URL.
  2. Dar un veredicto conciso (close, keep open o keep open but narrow).
  3. Enumerar los puntos de prueba más sólidos.
  4. Indicar cualquier seguimiento de endurecimiento opcional separado de la razón de cierre.
  5. Copiar el cuerpo del comentario propuesto con pbcopy.
  6. Terminar la respuesta después de ese aviso. No continuar con el siguiente aviso hasta que Peter diga que continúe.

Si la API de GitHub no puede publicar comentarios para avisos privados, decirlo una vez y seguir usando el portapapeles/pegar en la interfaz.

Paso del Portapapeles

Después de redactar el cuerpo final de la publicación para el aviso actual, copiarlo:

pbcopy <<'EOF'
<respuesta final>
EOF

Decir al usuario que el portapapeles ahora contiene la respuesta propuesta para ese aviso.

Comandos Útiles

gh api /repos/openclaw/openclaw/security-advisories/<GHSA>
gh api /repos/openclaw/openclaw/security-advisories --paginate
git tag --sort=-creatordate | head -n 20
npm view openclaw version --userconfig "$(mktemp)"
git tag --contains <commit>
git show <tag>:<path>
gh search issues --repo openclaw/openclaw --match title,body,comments -- "<términos>"
gh search prs --repo openclaw/openclaw --match title,body,comments -- "<términos>"

Interrupciones del Clasificador Cibernético

Para trabajo defensivo permitido interrumpido por un clasificador cibernético, usar una ruta Daybreak Blue aprobada y disponible solo para esa tarea acotada, luego restaurar el modelo anterior. Preservar la identidad, el alcance, los permisos, el entorno aislado y los puntos de revisión aprobados. Nunca cambiar de modelo para eludir denegaciones de acceso, solicitudes no permitidas o acciones de herramientas rechazadas; si esa ruta también se niega, detenerse e informar. Seguir la guía de OpenAI para acceso aprobado al modelo.

Notas de Decisión

  • "corregido en main, no publicado" normalmente no es un cierre.
  • "requiere primero estado local controlado por el atacante" normalmente está fuera de alcance.
  • "el proceso del mismo host y mismo usuario ya puede leer/escribir el estado local" normalmente está fuera de alcance.
  • "la memoria de espacio de trabajo de confianza promociona/reindexa memoria de espacio de trabajo de confianza" normalmente está fuera de alcance a menos que cruce un límite documentado.
  • "la función auxiliar se comporta de manera diferente a la semántica de configuración documentada" normalmente no es válido.
  • Si solo la gravedad es incorrecta pero el error es real, mantenerlo abierto y acotar el impacto en la respuesta.

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

1password

Set up and use 1Password CLI for sign-in, desktop integration, and reading or injecting secrets.

acp-router

Route plain-language requests for Claude Code, Cursor, Copilot, OpenClaw ACP, OpenCode, Gemini CLI, Qwen, Kiro, Kimi, iFlow, Factory Droid, Kilocode, or explicit ACP harness work into either OpenClaw ACP runtime sessions or direct acpx-driven sessions ("telephone game" flow). For coding-agent thread requests, read this skill first, then use only `sessions_spawn` for thread creation. Codex chat binding defaults to the native Codex app-server plugin unless ACP is explicit or background spawn needs ACP.

add-model-provider

Add and live-prove a model provider with non-interactive config one-liners, without exposing credentials.

agent-transcript

Requested GitHub PR/issue agent transcripts: redact, trim, preview, and insert safely.

apple-notes

Create, view, edit, delete, search, move, or export Apple Notes via the memo CLI on macOS.

apple-reminders

List, add, edit, complete, or delete Apple Reminders and reminder lists via remindctl.

auto-qa

Run OpenClaw-wide autonomous QA and live/stress campaigns across independent subsystem lanes, with verified fixes and a resumable evidence report.

autoreview

Structured code review through the shared OpenClaw agent-skills installation.

bear-notes

Create, search, and manage Bear notes via grizzly CLI.

blacksmith-testbox

Run Blacksmith Testbox for CI-parity checks, secrets, hosted services, migrations, or builds local cannot reproduce.

block-kit

Use proactively for structured or interactive Slack replies, and when asked to author or validate native Slack Block Kit JSON.

blogwatcher

Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.

blucli

BluOS CLI (blu) for discovery, playback, grouping, and volume.

bluebubbles

Send and manage iMessages via BlueBubbles, including attachments, tapbacks, edits, replies, and groups.

browser-automation

Use when controlling web pages with the OpenClaw browser tool, especially multi-step flows, login checks, tab management, or recovery from stale refs/timeouts.

camsnap

Capture frames or clips from RTSP/ONVIF cameras and local webcams, including USB pan/tilt/zoom control.

canvas

Present HTML on connected OpenClaw node canvases, navigate/eval/snapshot, and debug canvas host URLs.

channel-message-flows

Use when running QA Lab channel message flow evidence.

clawdtributor

Clawtributor PRs here, last week or another window: discover conversation refs, recheck GitHub, rank by impact.

clawhub

Search ClawHub for plugins by default, or skills when explicitly requested; install, verify, update, uninstall, publish, or sync skills.

Skills relacionados