LiveActive security incident?Get immediate response
CVE Record

CVE-2021-39194: Denial of service while parsing polymorphic input with tagged polymorphism style in kaml

kaml is an open source implementation of the YAML format with support for kotlinx.serialization. In affected versions attackers that could provide arbitrary YAML input to an application that uses kaml could cause the application to endlessly loop while parsing the input. This could result in resource starvation and denial of service. This only affects applications that use polymorphic serialization with the default tagged polymorphism style. Applications using the property polymorphism style are not affected. YAML input for a polymorphic type that provided a tag but no value for the object would trigger the issue. Version 0.35.3 or later contain the fix for this issue.

MediumCVSS 4.3Not KEV-listedUpdated
Glexia's TakeAutomated analysismoderate

Security readout for executives and security teams

Plain-English summary

CVE-2021-39194 can let someone who can submit YAML to a kaml-using application make parsing loop indefinitely. The impact is service availability, not data theft. It matters most for internet-facing or multi-tenant services that parse user-supplied YAML with kaml polymorphic serialization.

Executive priority

Prioritize remediation for public-facing or customer-supplied YAML processing services. The issue is not critical, but a simple malformed input can degrade availability in affected configurations. Internal-only systems with trusted input are lower urgency.

Technical view

Affected kaml versions can endlessly loop when parsing polymorphic YAML using the default tagged polymorphism style, specifically when input includes a tag without an object value. Property polymorphism style is stated as unaffected. The weakness maps to CWE-835 and has CVSS 3.1 score 4.3.

Likely exposure

Exposure is limited to applications using charleskorn kaml, accepting attacker-controlled YAML, and using polymorphic serialization with the default tagged style. Applications not using kaml, not parsing untrusted YAML, or using property polymorphism style are not indicated as affected.

Exploitation context

The provided sources do not show KEV listing or active exploitation. Exploitation requires the ability to provide arbitrary YAML input to an affected application. The expected result is resource starvation or denial of service, not confidentiality or integrity compromise.

Researcher notes

The source bundle contains a version ambiguity: the description says 0.35.3 or later contains the fix, while the affected entry lists versions below 0.35.2. Use the GitHub advisory and commit history as the deciding source during verification.

Mitigation direction

  • Inventory kaml dependency versions across applications and services.
  • Upgrade affected kaml deployments to the vendor-fixed release line.
  • Review vendor advisory because source data differs on exact fixed version.
  • Use property polymorphism style where compatible with application behavior.
  • Restrict or reject untrusted YAML input where it is unnecessary.
  • Monitor YAML parsing services for CPU saturation or request hangs.

Validation and detection

  • Confirm whether applications accept user-controlled YAML input.
  • Check whether kaml polymorphic serialization is enabled.
  • Identify use of default tagged polymorphism style.
  • Verify deployed kaml version against vendor advisory guidance.
  • Run controlled regression testing for parser hangs after upgrading.
Prepared
Confidence
high
Sources
5

Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.

Potential ATT&CK relevance

Conservative CVE-to-ATT&CK context

These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.

ATT&CK lookup starting points

Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.

cwe · low confidence lookup

CWE-835: Exact CWE lookup

Use the exact CWE identifier as the starting point before reviewing related ATT&CK behavior. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.

Open ATT&CK lookup
cve · low confidence lookup

CVE-2021-39194 mapping review

Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.

Open ATT&CK lookup
Vulnerability profileCVE Program record
Severity
Medium
CVSS
4.3 (3.1)
Known Exploited
No
Published

Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:L

Official CVE source material

CNA and ADP enrichment extracted from CVE v5

These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.

1CVSS vectors
0Timeline events
0ADP providers
4Source links

CVSS vector scores

1 official score

We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.

ScoreVersionSeverityVectorExploitImpactSource
4.3CVSS 3.1MediumCVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:L2.81.4Primary CVE score

Vulnerability scoring details

Base CVSS 3.1 score

4.3Medium
CVSS 3.1 vector shape for CVE-2021-39194Attack VectorAttack ComplexityPrivileges RequiredUser InteractionScopeConfidentiality ImpactIntegrity ImpactAvailability Impact

Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:L

Attack Vector
NetworkAdjacentLocalPhysical
Attack Complexity
LowHigh
Privileges Required
NoneLowHigh
User Interaction
NoneRequired
Scope
ChangedUnchanged
Confidentiality Impact
HighLowNone
Integrity Impact
HighLowNone
Availability Impact
HighLowNone
Affected products

Products and packages named in the record

VendorProductVersion / packageStatus
charleskornkaml< 0.35.2Listed
Weakness

CWE details

CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.

CWE-835 · source CWE mapping

Loop with Unreachable Exit Condition ('Infinite Loop')

Loop with Unreachable Exit Condition ('Infinite Loop') represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.