CVE-Ignore Converter: Traduce archivos de exclusión de vulnerabilidades en un clic.
Se ejecuta en tu navegador: nada de lo que pegas sale de esta página. Cómo lo demostramos
Entorno de pruebas del CVE-Ignore Converter
# .trivyignore — suppressions for the api service # Disputed by upstream; not reachable from our code path. CVE-2023-44487 # Dev-only dependency, never shipped in the production image. CVE-2024-21626 # Awaiting base-image rebuild — tracked in OPS-1421. GHSA-jfmj-5v4g-7637
version: v1.25.0
ignore:
CVE-2023-44487:
- "*":
reason: Disputed by upstream; not reachable from our code path.
CVE-2024-21626:
- "*":
reason: Dev-only dependency, never shipped in the production image.
GHSA-jfmj-5v4g-7637:
- "*":
reason: Awaiting base-image rebuild — tracked in OPS-1421.
Results update as you type — press ⌘/Ctrl + Enter to run now. Press Esc to release the editor.
Convierte un archivo de exclusión de vulnerabilidades entre .trivyignore, .grype.yaml, .snyk y osv-scanner.toml: pega uno, elige un destino y obtén el archivo equivalente.
La brecha
Una decisión, cuatro formatos de archivo.
Decidir suprimir un CVE es trabajo real: investigas la accesibilidad, aceptas el riesgo y anotas por qué. Pero esa única decisión hay que recodificarla para cada escáner que ejecutes. Trivy quiere una línea en .trivyignore; Grype quiere un comparador estructurado en .grype.yaml; Snyk quiere una entrada indexada en .snyk; y osv-scanner quiere una tabla TOML en osv-scanner.toml.
Mantener cuatro archivos editados a mano para la misma política es la forma en que se cuela la desviación: un CVE ignorado en una herramienta pero activo en otra, una caducidad que venció en un solo lugar. Este conversor traduce entre los cuatro formatos para que puedas unificar tu política de supresión de CVE entre escáneres: aprueba una vez, genera en todas partes, de forma coherente.
¿No conoces un formato? Salta a los cuatro archivos o prueba el conversor en vivo de arriba.
El proceso
Cómo funciona.
Cuatro pasos deterministas se ejecutan de principio a fin en cada conversión, todo dentro de la pestaña de tu navegador, cada vez.
-
Detecta el origen.
El archivo de exclusión pegado se inspecciona y analiza según el formato que selecciones: Trivy, Grype, Snyk u osv-scanner.
-
Construye un modelo neutro.
Cada supresión se convierte en un registro independiente del formato: ID de vulnerabilidad, alcance opcional, motivo y caducidad.
-
Emite el destino.
Ese modelo se renderiza en la sintaxis exacta del formato de destino: lista de líneas, comparador YAML o tabla TOML.
-
Marca lo que no se puede asignar.
Cualquier campo sin cabida en el destino —caducidad, alcance de paquete, rutas— se muestra como una advertencia, nunca se descarta en silencio.
Trivy → Snyk
Convierte un .trivyignore en una política .snyk.
Pega el archivo de Trivy y elige .snyk como formato de destino. Esto es, palabra por palabra, lo que devuelve el conversor de arriba.
Pega esto
# Accepted risk — no upstream fix (review 2026-09).
CVE-2023-12345
GHSA-xxxx-yyyy-zzzz Obtienes esto
version: v1.25.0
ignore:
CVE-2023-12345:
- "*":
reason: Accepted risk — no upstream fix (review 2026-09).
GHSA-xxxx-yyyy-zzzz:
- "*": {} -
ID → clave de ignore
Cada línea suelta del .trivyignore se convierte en una clave del mapa ignore: de Snyk, ya sea un identificador CVE, GHSA o RUSTSEC.
-
# comentario → reason
Un comentario situado justo encima de un ID, o al final de esa misma línea, pasa al campo reason de la regla, de modo que la justificación viaja con la supresión.
-
sin ruta → "*"
Snyk indexa cada regla por ruta y .trivyignore no tiene ninguna, así que cada regla se escribe contra "*" (todas las rutas) y una advertencia deja constancia de que el conversor aplicó ese valor por defecto.
-
mismo ID dos veces → fusionado
Dos líneas de origen para la misma vulnerabilidad se fusionan en una única clave de ignore en lugar de sobrescribirse; si sus motivos no coinciden, recibes una advertencia en vez de una pérdida silenciosa.
En ambos sentidos
De Snyk de vuelta a Trivy, y en cualquier otra dirección.
El conversor no es de un solo sentido. Cualquiera de los cuatro formatos puede ser el origen y cualquier otro el destino, así que esta misma página cubre .snyk → .trivyignore, .trivyignore → .grype.yaml y .trivyignore → osv-scanner.toml.
Al volver a Trivy, cada reason de Snyk se reemite como líneas de comentario # encima de su ID —todas sus líneas, porque una línea sin comentar en .trivyignore es una supresión—. Una fecha expires pasa a ser el sufijo exp: de Trivy, y lo que Trivy no puede aplicar se informa en lugar de modificarse en silencio: un ID exclusivo de Snyk no coincide con nada en Trivy, así que se te indica qué línea sustituir por su ID CVE o GHSA.
.snyk → .trivyignore
# .trivyignore — generated by OpsCanopy CVE-Ignore Converter
# No reachable code path; tracked in JIRA-481.
SNYK-JS-LODASH-1040724 exp:2026-09-01
# Accepted risk — no upstream fix.
CVE-2023-12345 Convertido a partir de la política .snyk que se muestra más abajo, con una advertencia: «SNYK-JS-LODASH-1040724 is a Snyk-only id — Trivy matches CVE/GHSA ids, so this line suppresses nothing; replace it with the advisory's CVE or GHSA id.»
Formatos de archivo
Qué almacena cada uno: .trivyignore, .grype.yaml, .snyk y osv-scanner.toml.
La misma supresión —«ignorar CVE-2023-12345, riesgo aceptado»— se ve distinta en cada escáner. Así es como los cuatro formatos la codifican.
Trivy — .trivyignore
Una lista simple de IDs de vulnerabilidad, uno por línea, con # comentarios para el motivo humano. Un exp:YYYY-MM-DD opcional tras un ID fija su caducidad. No lleva alcance de paquete ni de ruta, así que esos campos se descartan (con una advertencia) al convertir desde formatos más ricos.
# .trivyignore — one ID per line; '#' starts a comment.
# Accepted risk: no fixed version upstream yet (review 2026-09).
CVE-2023-12345
CVE-2024-0001 Grype — .grype.yaml
Una lista ignore YAML de comparadores estructurados. Cada regla puede acotar una supresión a un nombre y versión de package específicos, pero no lleva caducidad.
# .grype.yaml — ignore rules are structured matchers.
ignore:
- vulnerability: CVE-2023-12345
# Optional scoping by package narrows the suppression.
package:
name: libfoo
version: 1.2.3
- vulnerability: GHSA-xxxx-yyyy-zzzz Snyk — .snyk
Una política YAML indexada por ID de problema. Cada entrada acota por ruta ('*' para todas) y lleva un reason legible por personas y una marca de tiempo expires.
# .snyk — a YAML policy file. Each ignore is keyed by issue ID.
version: v1.25.0
ignore:
SNYK-JS-LODASH-1040724:
- '*':
reason: No reachable code path; tracked in JIRA-481.
expires: 2026-09-01T00:00:00.000Z
CVE-2023-12345:
- '*':
reason: Accepted risk — no upstream fix. osv-scanner — osv-scanner.toml
Un archivo TOML con un array de tablas [[IgnoredVulns]]. Cada una incluye un id, una caducidad ignoreUntil opcional y un reason.
# osv-scanner.toml — TOML array of ignored advisories.
[[IgnoredVulns]]
id = "CVE-2023-12345"
# 'ignoreUntil' is the expiry equivalent.
ignoreUntil = 2026-09-01
reason = "Accepted risk — no upstream fix."
[[IgnoredVulns]]
id = "GHSA-xxxx-yyyy-zzzz"
reason = "Not exploitable in our build." | Scanner | File | Shape | Expiry | Scope | Reason |
|---|---|---|---|---|---|
| Trivy | .trivyignore | Lista de líneas | Sufijo de fecha exp: | No | Comentarios |
| Grype | .grype.yaml | Comparadores YAML | No | Paquete | No |
| Snyk | .snyk | Política YAML | Fecha por regla | Ruta | Sí |
| osv-scanner | osv-scanner.toml | Tablas TOML | ignoreUntil | No | Sí |
Cuándo hay pérdidas
Una nota sobre la fidelidad: como los formatos llevan metadatos distintos, no todos los campos sobreviven a cada conversión. Las fechas de caducidad no tienen cabida en .grype.yaml; el alcance de paquete y de ruta no se puede expresar en .trivyignore ni en osv-scanner.toml; y los metadatos de motivo se degradan a un comentario cuando un destino no tiene un campo dedicado. Cuando un campo no se puede asignar, el conversor lo marca como una advertencia en lugar de descartarlo en silencio, de modo que siempre sabes exactamente qué no se trasladó y puedes decidir qué hacer al respecto.
FAQ
Tus preguntas, respondidas.
Toca una pregunta para desplegar la respuesta.
¿Qué es el CVE-Ignore Converter?
Es una herramienta gratuita, basada en el navegador, que traduce una política de supresión de vulnerabilidades entre los cuatro formatos de escáner habituales: Trivy (.trivyignore), Grype (.grype.yaml), Snyk (.snyk) y osv-scanner (osv-scanner.toml). Pega un archivo de exclusión, elige un formato de destino y obtén el archivo equivalente, de modo que una supresión que decidiste una vez no tenga que volver a escribirse para cada escáner.
¿Mis datos salen alguna vez de mi navegador?
No. El conversor se ejecuta 100 % del lado del cliente. Tu archivo de exclusión se analiza y se vuelve a generar dentro de la pestaña de tu navegador: no se sube nada a un servidor y no hay cuenta ni registro. Puedes pegar con seguridad políticas internas de CVE y los comentarios que las justifican.
¿Entre qué formatos puede convertir?
Se admiten las cuatro direcciones: .trivyignore (Trivy), .grype.yaml (Grype), .snyk (política de Snyk) y osv-scanner.toml (osv-scanner). Cualquier formato de origen se puede traducir a cualquier formato de destino, así que también sirve como unificador cuando adoptas un nuevo escáner.
¿Cómo convierto un archivo .trivyignore en un archivo de política .snyk?
Pega el contenido de .trivyignore y selecciona .snyk como formato de destino. El conversor asigna cada ID de vulnerabilidad a un bloque de exclusión YAML de Snyk indexado por el ID del problema, usando un alcance de ruta comodín, y traslada cualquier comentario de línea al campo de motivo. La conversión se ejecuta enteramente en tu navegador, sin que se suba nada.
¿Puedo convertir un archivo de exclusión .grype.yaml a .trivyignore?
Sí. Los comparadores de exclusión estructurados de Grype —ID de vulnerabilidad, nombre de paquete opcional y alcance de versión— se reducen a una lista plana de IDs en formato .trivyignore. Como .trivyignore no tiene alcance de paquete ni de versión legible por máquina, esos campos no se pueden representar en el destino; el conversor los marca como advertencias en lugar de descartarlos en silencio.
¿Cómo unifico una política de supresión de vulnerabilidades en varios escáneres?
Mantén un único archivo de exclusión de origen y usa el conversor para traducirlo a cada formato de escáner que ejecutes. Esto evita el problema de la política fragmentada, donde la misma decisión de riesgo aceptado tiene que reexpresarse por separado para Trivy, Grype, Snyk y osv-scanner, y previene la desviación en la que un CVE se suprime en una herramienta pero sigue activo en otra.
¿Cuál es el formato de un archivo de exclusión osv-scanner.toml?
Es un archivo TOML que contiene un array de tablas [[IgnoredVulns]]. Cada tabla incluye un campo id (por ejemplo CVE-2023-12345, GHSA-xxxx-yyyy-zzzz, RUSTSEC-2023-0001), una fecha de caducidad ignoreUntil opcional en formato RFC3339 y una cadena reason opcional. El conversor lee y escribe este formato junto con Trivy, Grype y Snyk.
¿Por qué no todos los campos pueden conservarse en una conversión de ida y vuelta?
Los formatos no llevan los mismos metadatos. El .trivyignore de Trivy es una lista de IDs con comentarios opcionales; el .snyk de Snyk es una política YAML con alcance por ruta y fechas de caducidad; el .grype.yaml de Grype y el osv-scanner.toml quedan en un punto intermedio. Los campos sin equivalente en el destino —fechas de caducidad, alcance de paquete o de ruta, metadatos de motivo— se marcan como advertencias en lugar de descartarse en silencio, de modo que siempre sabes qué no se asignó.
¿Se conserva el comentario o motivo de cada supresión?
Siempre que el formato de destino lo admita. Tanto Trivy como Snyk llevan motivos legibles por personas (Trivy como comentarios de línea y Snyk como un campo reason dedicado), por lo que las justificaciones sobreviven a esas conversiones. Cuando un formato de destino no tiene dónde almacenar el motivo, el conversor lo mantiene como comentario donde es posible y emite una advertencia donde no puede.
¿Está afiliado a Aqua Security, Anchore, Snyk o Google?
No. Esta es una herramienta independiente y comunitaria, y no está afiliada ni respaldada por Aqua Security (Trivy), Anchore (Grype), Snyk ni Google (osv-scanner). Los nombres de los proveedores y formatos se usan únicamente para describir lo que la herramienta lee y escribe.
More free, private DevOps tools.
El CVE-Ignore Converter es una herramienta más de OpsCanopy: una copa creciente de validadores, conversores y probadores basados en el navegador que nunca tocan un servidor.
Más en Seguridad
- JWT Decoder & Encoder Decode, verify, and sign JWTs — HS/RS/PS/ES/EdDSA — with a built-in key generator.
- Hash Generator Compute MD5, SHA-1, SHA-256 and SHA-512 digests of any text — plus HMAC.
- Certificate Decoder & Chain Checker Decode PEM certificates, check chain order, and verify signatures — in your browser.
42 herramientas gratuitas, todas pueden funcionar sin conexión — opscanopy.com funciona sin registro y sin subir nada.
Combina bien con AlertLint, nuestro probador de reglas de alerta de Loki basado en el navegador, o explora el directorio completo de herramientas.
No está afiliado ni respaldado por Aqua Security (Trivy), Anchore (Grype), Snyk ni Google (osv-scanner). Todos los nombres de producto son marcas comerciales de sus respectivos propietarios y se usan únicamente para describir lo que esta herramienta lee y escribe.