Habilidad de agente + script para escanear proyectos en busca de CVE-2026-111497 (Brotli), calificar la criticidad y sugerir correcciones
Escanea un proyecto o una imagen de contenedor en busca de CVE-2026-111497, un desbordamiento de búfer en el decodificador de Brotli. Clasifica la criticidad como Crítica, Alta o Media y enumera los pasos para solucionarlo.
El repositorio incluye dos piezas:
skills/brotli-cve-check/scripts/brotli_check.py): realiza el escaneo, la clasificación y la remediación propiamente dichos. Solo necesita Python 3.11+ y ninguna dependencia, por lo que también se ejecuta en CI.skills/brotli-cve-check/SKILL.md): un agente de IA ejecuta el script, lee tus archivos de k8s, terraform y compose, y el README para determinar el grado de exposición del sistema, y luego vuelve a ejecutar el script con esa exposición./plugin marketplace add Apaonum/brotli-cve-check
/plugin install brotli-cve-check@brotli-cve-check
Para obtener las nuevas versiones, ejecuta /plugin marketplace update brotli-cve-check.
npx skills add Apaonum/brotli-cve-check
git clone https://github.com/Apaonum/brotli-cve-check
ln -s "$PWD/brotli-cve-check/skills/brotli-cve-check" ~/.claude/skills/brotli-cve-check
Con la skill instalada, pide a tu agente que "compruebe este proyecto en busca de la CVE de Brotli".
Para ejecutar el script directamente:
python3 skills/brotli-cve-check/scripts/brotli_check.py <project> \
[--exposure internet|internal|none] \
[--python <venv>/bin/python] \
[--image <image>] \
[--json]
--exposure | Criticidad | Plazo | Cuándo |
|---|---|---|---|
internet | Crítica | 24 horas | Recibe solicitudes de internet, llama a API de socios o de terceros, o recupera URL proporcionadas por los usuarios |
internal | Alta | 7 días | Recibe datos de otros sistemas o socios a través de una red interna o VPN, o procesa datos personales de clientes |
none | Media | ≤ 30 días | Imágenes de build/CI, máquinas de desarrollo, trabajos por lotes que solo leen datos internos |
| (omitido) | Crítica | 24 horas | La exposición es desconocida, por lo que la herramienta asume el nivel más alto |
Códigos de salida: 0 limpio, 1 vulnerable o requiere verificación, 2 error de escaneo.
requirements*.txt, pyproject.toml, poetry.lock, uv.lock, Pipfile.lock: Brotli 1.0.3–1.2.0 (excepto las correcciones retroportadas 1.0.10 y 1.1.1) y brotlicffi < 1.2.1.0Dockerfile: imágenes base sobre Debian unstable (sid), e imágenes base no fijadas por digest--image: ejecuta el contenedor y comprueba libbrotli1 con dpkg --compare-versions (bookworm necesita ≥ 1.0.9-2+deb12u1, trixie necesita ≥ 1.1.0-2+deb13u1). También comprueba los paquetes de Python dentro de la imagen y ejecuta trivy si está instalado. Necesita docker.--python: comprueba los paquetes realmente instalados en ese intérprete- run: python3 skills/brotli-cve-check/scripts/brotli_check.py . --exposure internet --json
python3 skills/brotli-cve-check/scripts/test_brotli_check.py
--image informa de la versión instalada y la marca como "verificar". Compara esa versión con el rastreador de seguridad propio de la distribución.--image, el resultado es "requiere verificación", porque el escaneo nunca ve la biblioteca del sistema operativo dentro de la imagen.MIT