← Back to CVE Explorer

CVE-2026-65636

Full vulnerability record from the local CVENow database.

Description

Improper Neutralization of CRLF Sequences vulnerability in ufirstgroup ymlr (Elixir.Ymlr module) allows attackers to inject arbitrary content into generated YAML documents through document comments. Ymlr.document!/2 interpolates each caller-supplied comment string into the output behind a single # prefix without validating it or escaping line breaks. Because a YAML comment is terminated by a line break, the first carriage return or line feed in the comment string ends the comment context and everything after it is emitted at column 0 of the document body. An attacker who controls text that the host application passes as a comment can forge top-level mapping keys, override values the application itself set, and emit --- or ... markers that split the output into additional documents. Downstream consumers of the generated YAML, such as configuration loaders, deployment manifests, CI pipelines and data importers, parse the injected content as legitimate data. The same clause backs Ymlr.document/2, Ymlr.documents!/2 and Ymlr.documents/2, so every document encoding entry point is affected. This vulnerability is associated with program files lib/ymlr.ex and program routines 'Elixir.Ymlr':document!/2, 'Elixir.Ymlr':documents!/2. This issue affects ymlr from 0.0.1 before 5.1.6.

Severity
LOW
CVSS score
2.1 (v4.0)
Vulnerability status
Awaiting Analysis
Source identifier
6b3ad84c-e1a6-4bf7-a703-f496b71e49db
Published
2026-07-31 14:16:51.240000
Last modified
2026-10-23 23:10:00.157000
View original CVE JSON
{
  "id": "CVE-2026-65636",
  "sourceIdentifier": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
  "published": "2026-07-31T14:16:51.240",
  "lastModified": "2026-10-23T23:10:00.157",
  "vulnStatus": "Awaiting Analysis",
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "Improper Neutralization of CRLF Sequences vulnerability in ufirstgroup ymlr (Elixir.Ymlr module) allows attackers to inject arbitrary content into generated YAML documents through document comments. Ymlr.document!/2 interpolates each caller-supplied comment string into the output behind a single # prefix without validating it or escaping line breaks. Because a YAML comment is terminated by a line break, the first carriage return or line feed in the comment string ends the comment context and everything after it is emitted at column 0 of the document body.\n\nAn attacker who controls text that the host application passes as a comment can forge top-level mapping keys, override values the application itself set, and emit --- or ... markers that split the output into additional documents. Downstream consumers of the generated YAML, such as configuration loaders, deployment manifests, CI pipelines and data importers, parse the injected content as legitimate data. The same clause backs Ymlr.document/2, Ymlr.documents!/2 and Ymlr.documents/2, so every document encoding entry point is affected.\n\nThis vulnerability is associated with program files lib/ymlr.ex and program routines 'Elixir.Ymlr':document!/2, 'Elixir.Ymlr':documents!/2.\n\nThis issue affects ymlr from 0.0.1 before 5.1.6."
    },
    {
      "lang": "es",
      "value": "La vulnerabilidad de neutralización incorrecta de secuencias CRLF en ufirstgroup ymlr (módulo Elixir.Ymlr) permite a los atacantes inyectar contenido arbitrario en documentos YAML generados a través de comentarios de documentos. Ymlr.document!/2 interpola cada cadena de comentario proporcionada por el llamador en la salida detrás de un único prefijo # sin validarla o escapar los saltos de línea. Debido a que un comentario YAML termina con un salto de línea, el primer retorno de carro o salto de línea en la cadena de comentario finaliza el contexto del comentario y todo lo que le sigue se emite en la columna 0 del cuerpo del documento.\n\nUn atacante que controla el texto que la aplicación anfitriona pasa como comentario puede falsificar claves de mapeo de nivel superior, anular valores que la propia aplicación estableció y emitir marcadores --- o ... que dividen la salida en documentos adicionales. Los consumidores posteriores del YAML generado, como cargadores de configuración, manifiestos de despliegue, pipelines de CI e importadores de datos, analizan el contenido inyectado como datos legítimos. La misma cláusula respalda Ymlr.document/2, Ymlr.documents!/2 y Ymlr.documents/2, por lo que cada punto de entrada de codificación de documentos se ve afectado.\n\nEsta vulnerabilidad está asociada con los archivos de programa lib/ymlr.ex y las rutinas de programa Elixir.Ymlr:document!/2, Elixir.Ymlr:documents!/2.\n\nEste problema afecta a ymlr desde 0.0.1 antes de 5.1.6."
    }
  ],
  "affected": [
    {
      "source": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
      "affectedData": [
        {
          "vendor": "ufirstgroup",
          "product": "ymlr",
          "defaultStatus": "unaffected",
          "collectionURL": "https://repo.hex.pm",
          "packageName": "ymlr",
          "cpes": [
            "cpe:2.3:a:ufirstgroup:ymlr:*:*:*:*:*:*:*:*"
          ],
          "modules": [
            "Elixir.Ymlr"
          ],
          "programFiles": [
            "lib/ymlr.ex"
          ],
          "programRoutines": [
            {
              "name": "'Elixir.Ymlr':document!/2"
            },
            {
              "name": "'Elixir.Ymlr':documents!/2"
            }
          ],
          "repo": "https://github.com/ufirstgroup/ymlr",
          "packageURL": "pkg:hex/ymlr",
          "versions": [
            {
              "version": "0.0.1",
              "lessThan": "5.1.6",
              "versionType": "semver",
              "status": "affected"
            }
          ]
        },
        {
          "vendor": "ufirstgroup",
          "product": "ymlr",
          "defaultStatus": "unaffected",
          "collectionURL": "https://github.com",
          "packageName": "ufirstgroup/ymlr",
          "cpes": [
            "cpe:2.3:a:ufirstgroup:ymlr:*:*:*:*:*:*:*:*"
          ],
          "modules": [
            "Elixir.Ymlr"
          ],
          "programFiles": [
            "lib/ymlr.ex"
          ],
          "programRoutines": [
            {
              "name": "'Elixir.Ymlr':document!/2"
            },
            {
              "name": "'Elixir.Ymlr':documents!/2"
            }
          ],
          "repo": "https://github.com/ufirstgroup/ymlr",
          "packageURL": "pkg:github/ufirstgroup/ymlr",
          "versions": [
            {
              "version": "0c11a86de83825e91c27cecaccb03f36416d8fe0",
              "lessThan": "42a0bf8b2af44b0e7c42d0b7044c8588ca5866dc",
              "versionType": "git",
              "status": "affected"
            }
          ]
        }
      ]
    }
  ],
  "metrics": {
    "cvssMetricV40": [
      {
        "source": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
        "type": "Secondary",
        "cvssData": {
          "version": "4.0",
          "vectorString": "CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:L/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X",
          "baseScore": 2.1,
          "baseSeverity": "LOW",
          "attackVector": "LOCAL",
          "attackComplexity": "LOW",
          "attackRequirements": "PRESENT",
          "privilegesRequired": "NONE",
          "userInteraction": "NONE",
          "vulnConfidentialityImpact": "NONE",
          "vulnIntegrityImpact": "LOW",
          "vulnAvailabilityImpact": "NONE",
          "subConfidentialityImpact": "NONE",
          "subIntegrityImpact": "LOW",
          "subAvailabilityImpact": "NONE",
          "exploitMaturity": "NOT_DEFINED",
          "confidentialityRequirement": "NOT_DEFINED",
          "integrityRequirement": "NOT_DEFINED",
          "availabilityRequirement": "NOT_DEFINED",
          "modifiedAttackVector": "NOT_DEFINED",
          "modifiedAttackComplexity": "NOT_DEFINED",
          "modifiedAttackRequirements": "NOT_DEFINED",
          "modifiedPrivilegesRequired": "NOT_DEFINED",
          "modifiedUserInteraction": "NOT_DEFINED",
          "modifiedVulnConfidentialityImpact": "NOT_DEFINED",
          "modifiedVulnIntegrityImpact": "NOT_DEFINED",
          "modifiedVulnAvailabilityImpact": "NOT_DEFINED",
          "modifiedSubConfidentialityImpact": "NOT_DEFINED",
          "modifiedSubIntegrityImpact": "NOT_DEFINED",
          "modifiedSubAvailabilityImpact": "NOT_DEFINED",
          "Safety": "NOT_DEFINED",
          "Automatable": "NOT_DEFINED",
          "Recovery": "NOT_DEFINED",
          "valueDensity": "NOT_DEFINED",
          "vulnerabilityResponseEffort": "NOT_DEFINED",
          "providerUrgency": "NOT_DEFINED"
        }
      }
    ],
    "ssvcV203": [
      {
        "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
        "ssvcData": {
          "timestamp": "2026-07-31T14:28:31.525792Z",
          "id": "CVE-2026-65636",
          "options": [
            {
              "exploitation": "poc"
            },
            {
              "automatable": "no"
            },
            {
              "technicalImpact": "partial"
            }
          ],
          "role": "CISA Coordinator",
          "version": "2.0.3"
        }
      }
    ]
  },
  "weaknesses": [
    {
      "source": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
      "type": "Secondary",
      "description": [
        {
          "lang": "en",
          "value": "CWE-93"
        }
      ]
    }
  ],
  "references": [
    {
      "url": "https://cna.erlef.org/cves/CVE-2026-65636.html",
      "source": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db"
    },
    {
      "url": "https://github.com/ufirstgroup/ymlr/commit/42a0bf8b2af44b0e7c42d0b7044c8588ca5866dc",
      "source": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db"
    },
    {
      "url": "https://github.com/ufirstgroup/ymlr/commit/7e53061fb2809b787fba0373c46b78e253c83adc",
      "source": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db"
    },
    {
      "url": "https://github.com/ufirstgroup/ymlr/security/advisories/GHSA-p8qx-7cp9-v6c9",
      "source": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db"
    },
    {
      "url": "https://osv.dev/vulnerability/EEF-CVE-2026-65636",
      "source": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db"
    }
  ]
}