CVE-2026-67585
Full vulnerability record from the local CVENow database.
Description
Allocation of Resources Without Limits or Throttling vulnerability in DivvyPayHQ absinthe_federation allows an unauthenticated remote attacker to abort the Erlang VM via crafted _entities representation keys. Every key of every object in the representations argument of the federation-mandated _entities field is converted with String.to_atom/1 by convert_key/2 in lib/absinthe/federation/schema/entities_field.ex. representations is typed as the open-ended _Any scalar, so its keys bypass schema coercion and the attacker names them freely. Atoms are never garbage collected and the BEAM atom table is hard-capped (about 1,048,576 entries by default), so one request carrying tens of thousands of unique keys creates that many permanent atoms and a handful of such requests exhausts the table and aborts the node. The impact is confined to availability: no data is read or altered, and recovery requires restarting the application. This issue affects absinthe_federation: from 0.1.0 before 0.9.3.
View original CVE JSON
{
"id": "CVE-2026-67585",
"sourceIdentifier": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
"published": "2026-08-07T17:17:06.927",
"lastModified": "2026-10-24T16:10:00.153",
"vulnStatus": "Awaiting Analysis",
"cveTags": [],
"descriptions": [
{
"lang": "en",
"value": "Allocation of Resources Without Limits or Throttling vulnerability in DivvyPayHQ absinthe_federation allows an unauthenticated remote attacker to abort the Erlang VM via crafted _entities representation keys.\n\nEvery key of every object in the representations argument of the federation-mandated _entities field is converted with String.to_atom/1 by convert_key/2 in lib/absinthe/federation/schema/entities_field.ex. representations is typed as the open-ended _Any scalar, so its keys bypass schema coercion and the attacker names them freely. Atoms are never garbage collected and the BEAM atom table is hard-capped (about 1,048,576 entries by default), so one request carrying tens of thousands of unique keys creates that many permanent atoms and a handful of such requests exhausts the table and aborts the node. The impact is confined to availability: no data is read or altered, and recovery requires restarting the application.\n\nThis issue affects absinthe_federation: from 0.1.0 before 0.9.3."
},
{
"lang": "es",
"value": "Vulnerabilidad de Asignación de Recursos Sin Límites o Limitación en DivvyPayHQ absinthe_federation permite a un atacante remoto no autenticado abortar la VM de Erlang mediante claves de representación _entities manipuladas.\n\nCada clave de cada objeto en el argumento representations del campo _entities exigido por la federación se convierte con String.to_atom/1 por convert_key/2 en lib/absinthe/federation/schema/entities_field.ex. representations se tipifica como el escalar _Any de tipo abierto, por lo que sus claves eluden la coerción del esquema y el atacante las nombra libremente. Los átomos nunca son recolectados por el recolector de basura y la tabla de átomos de BEAM tiene un límite estricto (aproximadamente 1,048,576 entradas por defecto), por lo que una solicitud que contenga decenas de miles de claves únicas crea esa cantidad de átomos permanentes y un puñado de tales solicitudes agota la tabla y aborta el nodo. El impacto se limita a la disponibilidad: no se leen ni se alteran datos, y la recuperación requiere reiniciar la aplicación.\n\nEste problema afecta a absinthe_federation: desde 0.1.0 antes de 0.9.3."
}
],
"affected": [
{
"source": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
"affectedData": [
{
"vendor": "DivvyPayHQ",
"product": "absinthe_federation",
"defaultStatus": "unaffected",
"collectionURL": "https://repo.hex.pm",
"packageName": "absinthe_federation",
"cpes": [
"cpe:2.3:a:divvypayhq:absinthe_federation:*:*:*:*:*:*:*:*"
],
"modules": [
"'Elixir.Absinthe.Federation.Schema.EntitiesField'"
],
"programFiles": [
"lib/absinthe/federation/schema/entities_field.ex"
],
"programRoutines": [
{
"name": "'Elixir.Absinthe.Federation.Schema.EntitiesField':resolver/3"
},
{
"name": "'Elixir.Absinthe.Federation.Schema.EntitiesField':convert_keys_to_atom/2"
},
{
"name": "'Elixir.Absinthe.Federation.Schema.EntitiesField':convert_key/2"
}
],
"repo": "https://github.com/DivvyPayHQ/absinthe_federation",
"packageURL": "pkg:hex/absinthe_federation",
"versions": [
{
"version": "0.1.0",
"lessThan": "0.9.3",
"versionType": "semver",
"status": "affected"
}
]
},
{
"vendor": "DivvyPayHQ",
"product": "absinthe_federation",
"defaultStatus": "unaffected",
"collectionURL": "https://github.com",
"packageName": "DivvyPayHQ/absinthe_federation",
"cpes": [
"cpe:2.3:a:divvypayhq:absinthe_federation:*:*:*:*:*:*:*:*"
],
"modules": [
"'Elixir.Absinthe.Federation.Schema.EntitiesField'"
],
"programFiles": [
"lib/absinthe/federation/schema/entities_field.ex"
],
"programRoutines": [
{
"name": "'Elixir.Absinthe.Federation.Schema.EntitiesField':resolver/3"
},
{
"name": "'Elixir.Absinthe.Federation.Schema.EntitiesField':convert_keys_to_atom/2"
},
{
"name": "'Elixir.Absinthe.Federation.Schema.EntitiesField':convert_key/2"
}
],
"repo": "https://github.com/DivvyPayHQ/absinthe_federation",
"packageURL": "pkg:github/DivvyPayHQ/absinthe_federation",
"versions": [
{
"version": "640a234a26b2d6fe5d9d21e00e5f4fce5645c0bf",
"lessThan": "c3838cda2a7f65c4893291668c223b0d6acf4516",
"versionType": "git",
"status": "affected"
}
]
}
]
}
],
"metrics": {
"cvssMetricV40": [
{
"source": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
"type": "Secondary",
"cvssData": {
"version": "4.0",
"vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/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": 8.7,
"baseSeverity": "HIGH",
"attackVector": "NETWORK",
"attackComplexity": "LOW",
"attackRequirements": "NONE",
"privilegesRequired": "NONE",
"userInteraction": "NONE",
"vulnConfidentialityImpact": "NONE",
"vulnIntegrityImpact": "NONE",
"vulnAvailabilityImpact": "HIGH",
"subConfidentialityImpact": "NONE",
"subIntegrityImpact": "NONE",
"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-08-07T18:12:41.815038Z",
"id": "CVE-2026-67585",
"options": [
{
"exploitation": "none"
},
{
"automatable": "yes"
},
{
"technicalImpact": "partial"
}
],
"role": "CISA Coordinator",
"version": "2.0.3"
}
}
]
},
"weaknesses": [
{
"source": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
"type": "Secondary",
"description": [
{
"lang": "en",
"value": "CWE-770"
}
]
}
],
"references": [
{
"url": "https://cna.erlef.org/cves/CVE-2026-67585.html",
"source": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db"
},
{
"url": "https://github.com/DivvyPayHQ/absinthe_federation/commit/c3838cda2a7f65c4893291668c223b0d6acf4516",
"source": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db"
},
{
"url": "https://github.com/DivvyPayHQ/absinthe_federation/security/advisories/GHSA-55hv-mwvr-phf3",
"source": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db"
},
{
"url": "https://osv.dev/vulnerability/EEF-CVE-2026-67585",
"source": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db"
}
]
}