{"api_version":"1","generated_at":"2026-11-09T11:24:15+00:00","cve":"CVE-2026-106554","urls":{"html":"https://cve.report/CVE-2026-106554","api":"https://cve.report/api/cve/CVE-2026-106554.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2026-106554","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2026-106554"},"summary":{"title":"jackson-dataformat-cbor: quadratic-time TagList growth on unbounded stacked tags (CPU/GC DoS, PoC)","description":"One CBOR-parsing issue in jackson-dataformats-binary's CBOR module: an unbounded run of CBOR tags drives quadratic-time TagList growth (CPU/GC-exhaustion DoS, PoC-proven).\n\n\n\nPoC executed against com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:2.18.2; present in current 2.x and 3.x (tools.jackson.dataformat.cbor) HEAD. Distinct from the Avro and Smile/Protobuf advisories for this repo.\n\n\n\nQuadratic CPU/GC DoS from an unbounded chain of CBOR tags (PoC-proven). File: cbor/src/main/java/.../cbor/CBORParser.java (tag handling -> TagList).\n\n\n\nCBOR permits a data item to be preceded by any number of semantic tags. The CBOR parser accumulates them in a TagList whose backing array grows by a fixed increment (+8), not by doubling, and re-scans/copies on each growth. An attacker sends a value preceded by a long run of tag bytes; the fixed-increment growth makes accumulating N tags O(N^2) in time (plus GC pressure), with no cap on the number of stacked tags.\n\n\n\nPoC (executed, JDK 17): feeding a CBOR stream consisting of a long run of tag bytes (e.g. tag 0xC0+) before a trivial value forces quadratic CPU/GC; parse time grows super-linearly with the tag count, pinning a request thread with no configurable limit.\n\n\n\nImpact. Algorithmic-complexity denial of service (CWE-407): a modest input of stacked tags consumes quadratic CPU/GC, pinning a request thread; concurrent requests exhaust the pool.\n\n\n\nFix. Grow TagList by doubling and/or cap the number of stacked tags (StreamReadConstraints-style).","state":"PUBLISHED","assigner":"HeroDevs","published_at":"2026-11-04 16:17:32","updated_at":"2026-11-04 16:17:32"},"problem_types":["CWE-407","CWE-407 CWE-407 Inefficient Algorithmic Complexity"],"metrics":[],"references":[{"url":"https://github.com/FasterXML/jackson-dataformats-binary/security/advisories/GHSA-cjg7-h3pr-p927","name":"https://github.com/FasterXML/jackson-dataformats-binary/security/advisories/GHSA-cjg7-h3pr-p927","refsource":"36c7be3b-2937-45df-85ea-ca7133ea542c","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-106554","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-106554","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[{"source":"CNA","vendor":"FasterXML","product":"jackson-dataformat-cbor","version":"affected 2.15.0 2.18.12 maven","platforms":[]},{"source":"CNA","vendor":"FasterXML","product":"jackson-dataformat-cbor","version":"unaffected 2.18.12 maven","platforms":[]},{"source":"CNA","vendor":"FasterXML","product":"jackson-dataformat-cbor","version":"affected 2.19.0 2.21.8 maven","platforms":[]},{"source":"CNA","vendor":"FasterXML","product":"jackson-dataformat-cbor","version":"unaffected 2.21.8 maven","platforms":[]},{"source":"CNA","vendor":"FasterXML","product":"jackson-dataformat-cbor","version":"affected 2.22.0 2.22.4 maven","platforms":[]},{"source":"CNA","vendor":"FasterXML","product":"jackson-dataformat-cbor","version":"unaffected 2.22.4 maven","platforms":[]},{"source":"CNA","vendor":"FasterXML","product":"jackson-dataformat-cbor","version":"affected 3.0.0 3.1.8 maven","platforms":[]},{"source":"CNA","vendor":"FasterXML","product":"jackson-dataformat-cbor","version":"unaffected 3.1.8 maven","platforms":[]},{"source":"CNA","vendor":"FasterXML","product":"jackson-dataformat-cbor","version":"affected 3.2.0 3.2.4 maven","platforms":[]},{"source":"CNA","vendor":"FasterXML","product":"jackson-dataformat-cbor","version":"unaffected 3.2.4 maven","platforms":[]}],"timeline":[{"source":"CNA","time":"2026-10-22T21:30:00.000Z","lang":"en","value":"GHSA-cjg7-h3pr-p927 published in FasterXML/jackson-dataformats-binary"}],"solutions":[],"workarounds":[],"exploits":[],"credits":[{"source":"CNA","value":"apvxlab (AppViewX security research)","lang":"en"},{"source":"CNA","value":"v0xyc0n (www.jpac.at)","lang":"en"}],"nvd_cpes":[],"vendor_comments":[],"enrichments":{"kev":null,"epss":null,"legacy_qids":[]},"source_records":{"cve_program":{"containers":{"cna":{"affected":[{"collectionURL":"https://repo.maven.apache.org/maven2","defaultStatus":"unaffected","packageName":"com.fasterxml.jackson.dataformat:jackson-dataformat-cbor","product":"jackson-dataformat-cbor","programFiles":["cbor/src/main/java/.../cbor/CBORParser.java"],"programRoutines":[{"name":"CBORParser (tag handling -> TagList)"}],"repo":"https://github.com/FasterXML/jackson-dataformats-binary","vendor":"FasterXML","versions":[{"lessThan":"2.18.12","status":"affected","version":"2.15.0","versionType":"maven"},{"status":"unaffected","version":"2.18.12","versionType":"maven"},{"lessThan":"2.21.8","status":"affected","version":"2.19.0","versionType":"maven"},{"status":"unaffected","version":"2.21.8","versionType":"maven"},{"lessThan":"2.22.4","status":"affected","version":"2.22.0","versionType":"maven"},{"status":"unaffected","version":"2.22.4","versionType":"maven"}]},{"collectionURL":"https://repo.maven.apache.org/maven2","defaultStatus":"unaffected","packageName":"tools.jackson.dataformat:jackson-dataformat-cbor","product":"jackson-dataformat-cbor","programFiles":["cbor/src/main/java/.../cbor/CBORParser.java"],"programRoutines":[{"name":"CBORParser (tag handling -> TagList)"}],"repo":"https://github.com/FasterXML/jackson-dataformats-binary","vendor":"FasterXML","versions":[{"lessThan":"3.1.8","status":"affected","version":"3.0.0","versionType":"maven"},{"status":"unaffected","version":"3.1.8","versionType":"maven"},{"lessThan":"3.2.4","status":"affected","version":"3.2.0","versionType":"maven"},{"status":"unaffected","version":"3.2.4","versionType":"maven"}]}],"credits":[{"lang":"en","type":"reporter","value":"apvxlab (AppViewX security research)"},{"lang":"en","type":"reporter","value":"v0xyc0n (www.jpac.at)"}],"descriptions":[{"lang":"en","supportingMedia":[{"base64":false,"type":"text/html","value":"<p>One CBOR-parsing issue in jackson-dataformats-binary's CBOR module: an unbounded run of CBOR tags drives quadratic-time TagList growth (CPU/GC-exhaustion DoS, PoC-proven).</p><p>PoC executed against com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:2.18.2; present in current 2.x and 3.x (tools.jackson.dataformat.cbor) HEAD. Distinct from the Avro and Smile/Protobuf advisories for this repo.</p><p>Quadratic CPU/GC DoS from an unbounded chain of CBOR tags (PoC-proven). File: cbor/src/main/java/.../cbor/CBORParser.java (tag handling -&gt; TagList).</p><p>CBOR permits a data item to be preceded by any number of semantic tags. The CBOR parser accumulates them in a TagList whose backing array grows by a fixed increment (+8), not by doubling, and re-scans/copies on each growth. An attacker sends a value preceded by a long run of tag bytes; the fixed-increment growth makes accumulating N tags O(N^2) in time (plus GC pressure), with no cap on the number of stacked tags.</p><p>PoC (executed, JDK 17): feeding a CBOR stream consisting of a long run of tag bytes (e.g. tag 0xC0+) before a trivial value forces quadratic CPU/GC; parse time grows super-linearly with the tag count, pinning a request thread with no configurable limit.</p><p>Impact. Algorithmic-complexity denial of service (CWE-407): a modest input of stacked tags consumes quadratic CPU/GC, pinning a request thread; concurrent requests exhaust the pool.</p><p>Fix. Grow TagList by doubling and/or cap the number of stacked tags (StreamReadConstraints-style).</p>"}],"value":"One CBOR-parsing issue in jackson-dataformats-binary's CBOR module: an unbounded run of CBOR tags drives quadratic-time TagList growth (CPU/GC-exhaustion DoS, PoC-proven).\n\n\n\nPoC executed against com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:2.18.2; present in current 2.x and 3.x (tools.jackson.dataformat.cbor) HEAD. Distinct from the Avro and Smile/Protobuf advisories for this repo.\n\n\n\nQuadratic CPU/GC DoS from an unbounded chain of CBOR tags (PoC-proven). File: cbor/src/main/java/.../cbor/CBORParser.java (tag handling -> TagList).\n\n\n\nCBOR permits a data item to be preceded by any number of semantic tags. The CBOR parser accumulates them in a TagList whose backing array grows by a fixed increment (+8), not by doubling, and re-scans/copies on each growth. An attacker sends a value preceded by a long run of tag bytes; the fixed-increment growth makes accumulating N tags O(N^2) in time (plus GC pressure), with no cap on the number of stacked tags.\n\n\n\nPoC (executed, JDK 17): feeding a CBOR stream consisting of a long run of tag bytes (e.g. tag 0xC0+) before a trivial value forces quadratic CPU/GC; parse time grows super-linearly with the tag count, pinning a request thread with no configurable limit.\n\n\n\nImpact. Algorithmic-complexity denial of service (CWE-407): a modest input of stacked tags consumes quadratic CPU/GC, pinning a request thread; concurrent requests exhaust the pool.\n\n\n\nFix. Grow TagList by doubling and/or cap the number of stacked tags (StreamReadConstraints-style)."}],"metrics":[{"format":"other","other":{"content":{"text":"MEDIUM"},"type":"severity"},"scenarios":[{"lang":"en","value":"GENERAL"}]}],"problemTypes":[{"descriptions":[{"cweId":"CWE-407","description":"CWE-407 Inefficient Algorithmic Complexity","lang":"en","type":"CWE"}]}],"providerMetadata":{"dateUpdated":"2026-11-04T16:14:05.664Z","orgId":"36c7be3b-2937-45df-85ea-ca7133ea542c","shortName":"HeroDevs"},"references":[{"name":"GHSA-cjg7-h3pr-p927","tags":["vendor-advisory"],"url":"https://github.com/FasterXML/jackson-dataformats-binary/security/advisories/GHSA-cjg7-h3pr-p927"}],"source":{"advisory":"GHSA-cjg7-h3pr-p927","discovery":"EXTERNAL"},"tags":["x_open-source"],"timeline":[{"lang":"en","time":"2026-10-22T21:30:00.000Z","value":"GHSA-cjg7-h3pr-p927 published in FasterXML/jackson-dataformats-binary"}],"title":"jackson-dataformat-cbor: quadratic-time TagList growth on unbounded stacked tags (CPU/GC DoS, PoC)","x_generator":{"engine":"Vulnogram 0.5.0"}}},"cveMetadata":{"assignerOrgId":"36c7be3b-2937-45df-85ea-ca7133ea542c","assignerShortName":"HeroDevs","cveId":"CVE-2026-106554","datePublished":"2026-11-04T16:14:05.664Z","dateReserved":"2026-10-06T20:27:12.839Z","dateUpdated":"2026-11-04T16:14:05.664Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.2"},"nvd":{"publishedDate":"2026-11-04 16:17:32","lastModifiedDate":"2026-11-04 16:17:32","problem_types":["CWE-407","CWE-407 CWE-407 Inefficient Algorithmic Complexity"],"metrics":[],"configurations":[]},"legacy_mitre":{"record":{"CveYear":"2026","CveId":"106554","Ordinal":"1","Title":"jackson-dataformat-cbor: quadratic-time TagList growth on unboun","CVE":"CVE-2026-106554","Year":"2026"},"notes":[{"CveYear":"2026","CveId":"106554","Ordinal":"1","NoteData":"One CBOR-parsing issue in jackson-dataformats-binary's CBOR module: an unbounded run of CBOR tags drives quadratic-time TagList growth (CPU/GC-exhaustion DoS, PoC-proven).\n\n\n\nPoC executed against com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:2.18.2; present in current 2.x and 3.x (tools.jackson.dataformat.cbor) HEAD. Distinct from the Avro and Smile/Protobuf advisories for this repo.\n\n\n\nQuadratic CPU/GC DoS from an unbounded chain of CBOR tags (PoC-proven). File: cbor/src/main/java/.../cbor/CBORParser.java (tag handling -> TagList).\n\n\n\nCBOR permits a data item to be preceded by any number of semantic tags. The CBOR parser accumulates them in a TagList whose backing array grows by a fixed increment (+8), not by doubling, and re-scans/copies on each growth. An attacker sends a value preceded by a long run of tag bytes; the fixed-increment growth makes accumulating N tags O(N^2) in time (plus GC pressure), with no cap on the number of stacked tags.\n\n\n\nPoC (executed, JDK 17): feeding a CBOR stream consisting of a long run of tag bytes (e.g. tag 0xC0+) before a trivial value forces quadratic CPU/GC; parse time grows super-linearly with the tag count, pinning a request thread with no configurable limit.\n\n\n\nImpact. Algorithmic-complexity denial of service (CWE-407): a modest input of stacked tags consumes quadratic CPU/GC, pinning a request thread; concurrent requests exhaust the pool.\n\n\n\nFix. Grow TagList by doubling and/or cap the number of stacked tags (StreamReadConstraints-style).","Type":"Description","Title":"jackson-dataformat-cbor: quadratic-time TagList growth on unboun"}]}}}