NanoMQ is an MQTT broker. Prior to 0.24.14, NanoMQ's MQTT v5 property decoder in nng/src/supplemental/mqtt/mqtt_codec.c uses property_append() to walk the entire linked list for each property added by decode_buf_properties(). A remote unauthenticated client can supply a PUBLISH or SUBSCRIBE packet containing many User Properties, causing O(N²) linked-list insertion and CPU work that makes the broker unresponsive; repeated packets can sustain the denial of service. This issue is fixed in version 0.24.14.
{
"cna_assigner": "GitHub_M",
"cwe_ids": [
"CWE-407"
],
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/44xxx/CVE-2026-44639.json"
}{
"extracted_events": [
{
"original_tag": "0.24.14",
"range": [
{
"fixed": "16bdb38921e7bbeab887cf229c2eb145889dfa88"
}
],
"source": "REFERENCES_TAG"
}
]
}
{
"extracted_events": [
{
"range": [
{
"introduced": "0"
},
{
"fixed": "0.24.14"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StringRangeExpression"
},
{
"range": [
{
"fixed": "91bd4c7f45f945a3f5f0e37c459157dc7c277a07"
}
],
"source": "REFERENCES_COMMIT"
}
]
}
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-44639.json"
[
{
"deprecated": false,
"digest": {
"function_hash": "28834888792585952746046582344763331937",
"length": 1283
},
"id": "CVE-2026-44639-12dab8c8",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/nanomq/nanonng/commit/91bd4c7f45f945a3f5f0e37c459157dc7c277a07",
"target": {
"file": "src/supplemental/mqtt/mqtt_codec.c",
"function": "property_dup"
}
},
{
"deprecated": false,
"digest": {
"line_hashes": [
"106732617879992299546335078856304780455",
"294493632223967332579844525831444462468",
"206181698616916517217061310250512270723",
"76067159830892398620980420349741433411",
"132925112758583824193369990132482553455",
"55370608497300193109260551169647432186",
"81972049601563662899808688096955314759",
"238044452542881528069518046016055915863"
],
"threshold": 0.9
},
"id": "CVE-2026-44639-1eff8815",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://github.com/nanomq/nanonng/commit/5c6ad09f0f6f0b111e19e8fbae259d20f5673505",
"target": {
"file": "src/supplemental/nanolib/conf.c"
}
},
{
"deprecated": false,
"digest": {
"function_hash": "36706445640004850427928606781114042144",
"length": 1121
},
"id": "CVE-2026-44639-2294d8d3",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/nanomq/nanonng/commit/91bd4c7f45f945a3f5f0e37c459157dc7c277a07",
"target": {
"file": "src/supplemental/mqtt/mqtt_codec.c",
"function": "decode_buf_properties"
}
},
{
"deprecated": false,
"digest": {
"line_hashes": [
"46811483451477896856790388328605763754",
"311801283924213688732307939793063194875",
"87677047326685687221320160440381353259",
"88161995350614092340866699814976336942",
"338853735850932560710779998436527343770",
"76961446226926196609329045329125456353",
"212008917890785366398938207881834945918",
"28034384764643647514007619236954531059",
"219560342882905124898457963778654768058",
"160839437218773354579770298647070990065",
"71594525974957365475092236729829622801",
"29751352292134765619257223007430520689",
"4331654528078537018645243665109558153",
"214057169666744023519760494290836972471",
"193126897144187975916033350119924395008",
"283177173388909815992744418798404544788"
],
"threshold": 0.9
},
"id": "CVE-2026-44639-30e55c08",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://github.com/nanomq/nanonng/commit/91bd4c7f45f945a3f5f0e37c459157dc7c277a07",
"target": {
"file": "src/supplemental/mqtt/mqtt_codec.c"
}
},
{
"deprecated": false,
"digest": {
"function_hash": "179704196006112879465033474608620449237",
"length": 3859
},
"id": "CVE-2026-44639-bc6d51d1",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/nanomq/nanonng/commit/5c6ad09f0f6f0b111e19e8fbae259d20f5673505",
"target": {
"file": "src/supplemental/nanolib/conf.c",
"function": "conf_bridge_node_destroy"
}
},
{
"deprecated": false,
"digest": {
"line_hashes": [
"319987710299103814133658779126207238492",
"70208850574568910157760390157809152789",
"191324800489073211161864177168034711983",
"282085166627322855677257736944132808316",
"295813053496134856364453543700627648562"
],
"threshold": 0.9
},
"id": "CVE-2026-44639-cdd8af0f",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://github.com/nanomq/nanonng/commit/5c6ad09f0f6f0b111e19e8fbae259d20f5673505",
"target": {
"file": "include/nng/supplemental/nanolib/conf.h"
}
},
{
"deprecated": false,
"digest": {
"function_hash": "60028838494314808152959761740048073868",
"length": 1512
},
"id": "CVE-2026-44639-fd363509",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/nanomq/nanonng/commit/5c6ad09f0f6f0b111e19e8fbae259d20f5673505",
"target": {
"file": "src/supplemental/nanolib/conf.c",
"function": "conf_bridge_node_init"
}
}
]
"2026-10-28T10:49:47Z"