GHSA-fmm9-3gv8-58f4

    Dashboard / Vulnerabilities / GHSA-fmm9-3gv8-58f4

    GHSA-fmm9-3gv8-58f4

    Published: 7 Sept 2021Last Modified: 8 Jul 2026

    Summary: Improper Handling of Missing Values in kaml

    Details: ### Impact 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, for example: ```yaml !<x> ``` The following is a sample application that demonstrates this issue: ```kotlin import com.charleskorn.kaml.Yaml import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable @Serializable private sealed class K { @Serializable @SerialName("x") data class X( val property: String? = null, ) : K() } const val s = """ !<x> """ fun main() { println("Started.") val result = Yaml.default.decodeFromString(K.serializer(), s) println("Finished, result is $result") } ``` On vulnerable versions of kaml, the `decodeFromString()` operation hangs and never returns. ### Patches Version 0.35.3 or later contain the fix for this issue.

    Affected packages

    Package

    Name: com.charleskorn.kaml:kaml

    Purl: pkg:maven/com.charleskorn.kaml/kaml

    Affected ranges

    Type: ECOSYSTEM

    Events:

    Introduced- 0
    Fixed -0.35.3

    Affected versions

    0.1.0

    Common Vulnerability Scoring System

    Attack Vector
    Network
    Adjacent
    Local
    Physical
    Privileges Required
    None
    Low
    High
    User Interaction
    None
    Required
    Scope
    Unchanged
    Changed
    Confidentiality
    None
    Low
    High
    Integrity
    None
    Low
    High
    Availability
    None
    Low
    High
    GHSA-fmm9-3gv8-58f4 | CVE-DB