The netty incubator codec.bhttp is a java language binary http parser. Prior to version 0.0.21.Final, HKDF_expand returns non-NULL on failure. The byte[] is filled with zeros and has no way to distinguish success from failure. Since this output is used as HKDF key material for the response AEAD, a failure silently produces an all-zero key. When EVP_HPKE_CTX_export fails it also returns an empty byte[] array filled with zeros. This byte[] feeds directly into OHttpCrypto.createResponseAEAD(...). A silent all-zero export secret would produce a deterministic, attacker-predictable AEAD key. Version 0.0.21.Final patches the issue.
{
"cna_assigner": "GitHub_M",
"cwe_ids": [
"CWE-330"
],
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/41xxx/CVE-2026-41207.json"
}{
"cpe": "cpe:2.3:a:netty:netty-incubator-codec-ohttp:*:*:*:*:*:*:*:*",
"extracted_events": [
{
"introduced": "0"
},
{
"fixed": "0.0.21"
}
],
"source": [
"CPE_RANGE",
"REFERENCES"
]
}
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-41207.json"
[
{
"deprecated": false,
"digest": {
"line_hashes": [
"76268238818519181396489667128966458697",
"56707272453347697474935054577201800543",
"157792870596792836626000113880286005601",
"325079273990252442732512035641779322716",
"76268238818519181396489667128966458697",
"56707272453347697474935054577201800543",
"157792870596792836626000113880286005601",
"147431040608568422618277646122209721133"
],
"threshold": 0.9
},
"id": "CVE-2026-41207-018b6bc3",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://github.com/netty/netty-incubator-codec-ohttp/commit/3d3b4e527fc82ad0fe3db1af951ffd0ec9a10680",
"target": {
"file": "codec-ohttp-hpke-native-boringssl/src/main/c/netty_incubator_codec_ohttp_hpke_boringssl.c"
}
},
{
"deprecated": false,
"digest": {
"line_hashes": [
"260523649219347515688030174444519990731",
"262999924574615068609257668616284685016",
"10741318576551579452514071896315361811",
"113943878131517008772012445502091534990",
"28512647330888300427652760415800930970",
"33046681154031753044307632610848157842",
"119262238372590382871764205777531872453",
"220295268350282723698558356195937782124",
"77213242812283108894974740351002347187",
"295312821185349578023758016842843704334",
"296792670548361982121431596527290919680",
"120936534987060530451970988235089429177",
"78783338346110224920129490839351923700",
"274219394795463920096386372561041265575",
"122575775926146532216295320335216322480"
],
"threshold": 0.9
},
"id": "CVE-2026-41207-09fe5fc9",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://github.com/netty/netty-incubator-codec-ohttp/commit/3d3b4e527fc82ad0fe3db1af951ffd0ec9a10680",
"target": {
"file": "codec-ohttp-hpke-classes-boringssl/src/main/java/io/netty/incubator/codec/hpke/boringssl/BoringSSLHPKEContext.java"
}
},
{
"deprecated": false,
"digest": {
"function_hash": "58309202981467933104345481220741155916",
"length": 961
},
"id": "CVE-2026-41207-219d5496",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/netty/netty-incubator-codec-ohttp/commit/3d3b4e527fc82ad0fe3db1af951ffd0ec9a10680",
"target": {
"file": "codec-ohttp-hpke-native-boringssl/src/main/c/netty_incubator_codec_ohttp_hpke_boringssl.c",
"function": "netty_incubator_codec_ohttp_hpke_boringssl_EVP_HPKE_CTX_export"
}
},
{
"deprecated": false,
"digest": {
"line_hashes": [
"302768876941463522710797036083558854491",
"36788650146667737491990298471344921249",
"27162789701810094451698870753444392166",
"205295145727275386328807413242358944501",
"192574729908519706420755601626178463066",
"264459189675989002758814905963647677224",
"273358320282941163873052276196716586022",
"25293569183185254079010580562488703378"
],
"threshold": 0.9
},
"id": "CVE-2026-41207-29f95e3a",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://github.com/netty/netty-incubator-codec-ohttp/commit/3d3b4e527fc82ad0fe3db1af951ffd0ec9a10680",
"target": {
"file": "codec-ohttp/src/main/java/io/netty/incubator/codec/ohttp/OHttpCryptoReceiver.java"
}
},
{
"deprecated": false,
"digest": {
"function_hash": "108742211302787549794390636185187393173",
"length": 129
},
"id": "CVE-2026-41207-3183b3a3",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/netty/netty-incubator-codec-ohttp/commit/3d3b4e527fc82ad0fe3db1af951ffd0ec9a10680",
"target": {
"file": "codec-ohttp-hpke-classes-boringssl/src/main/java/io/netty/incubator/codec/hpke/boringssl/BoringSSLHPKEContext.java",
"function": "export"
}
},
{
"deprecated": false,
"digest": {
"function_hash": "14905246161769914555389797533578681393",
"length": 85
},
"id": "CVE-2026-41207-4bf453ba",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/netty/netty-incubator-codec-ohttp/commit/3d3b4e527fc82ad0fe3db1af951ffd0ec9a10680",
"target": {
"file": "codec-ohttp/src/main/java/io/netty/incubator/codec/ohttp/OHttpClientCodec.java",
"function": "decodePrefix"
}
},
{
"deprecated": false,
"digest": {
"function_hash": "135359162323466017870307596911834921119",
"length": 1311
},
"id": "CVE-2026-41207-4d077fba",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/netty/netty-incubator-codec-ohttp/commit/3d3b4e527fc82ad0fe3db1af951ffd0ec9a10680",
"target": {
"file": "codec-ohttp-hpke-native-boringssl/src/main/c/netty_incubator_codec_ohttp_hpke_boringssl.c",
"function": "netty_incubator_codec_ohttp_hpke_boringssl_HKDF_expand"
}
},
{
"deprecated": false,
"digest": {
"function_hash": "122014477633929233924468713702638028227",
"length": 668
},
"id": "CVE-2026-41207-57f3f024",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/netty/netty-incubator-codec-ohttp/commit/3d3b4e527fc82ad0fe3db1af951ffd0ec9a10680",
"target": {
"file": "codec-ohttp/src/main/java/io/netty/incubator/codec/ohttp/OHttpCrypto.java",
"function": "createResponseAEAD"
}
},
{
"deprecated": false,
"digest": {
"function_hash": "135268474841076911271605692124998057499",
"length": 127
},
"id": "CVE-2026-41207-599de3a8",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/netty/netty-incubator-codec-ohttp/commit/3d3b4e527fc82ad0fe3db1af951ffd0ec9a10680",
"target": {
"file": "codec-ohttp-hpke-classes-boringssl/src/main/java/io/netty/incubator/codec/hpke/boringssl/BoringSSLHPKEContext.java",
"function": "expand"
}
},
{
"deprecated": false,
"digest": {
"line_hashes": [
"198497152149298730100497430304541864329",
"162985395648784494913655045450255352970",
"265627347390842616484637398132490840703"
],
"threshold": 0.9
},
"id": "CVE-2026-41207-5c5c75b3",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://github.com/netty/netty-incubator-codec-ohttp/commit/3d3b4e527fc82ad0fe3db1af951ffd0ec9a10680",
"target": {
"file": "codec-ohttp-hpke/src/main/java/io/netty/incubator/codec/hpke/HPKEContext.java"
}
},
{
"deprecated": false,
"digest": {
"function_hash": "14277728930059405881190460601147587645",
"length": 109
},
"id": "CVE-2026-41207-7b6fea3b",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/netty/netty-incubator-codec-ohttp/commit/3d3b4e527fc82ad0fe3db1af951ffd0ec9a10680",
"target": {
"file": "codec-ohttp-hpke-bouncycastle/src/main/java/io/netty/incubator/codec/hpke/bouncycastle/BouncyCastleHPKEContext.java",
"function": "export"
}
},
{
"deprecated": false,
"digest": {
"function_hash": "144467848903247658758021445212554614547",
"length": 355
},
"id": "CVE-2026-41207-7cfdca2f",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/netty/netty-incubator-codec-ohttp/commit/3d3b4e527fc82ad0fe3db1af951ffd0ec9a10680",
"target": {
"file": "codec-ohttp/src/main/java/io/netty/incubator/codec/ohttp/OHttpCryptoSender.java",
"function": "readResponseNonce"
}
},
{
"deprecated": false,
"digest": {
"line_hashes": [
"293233693040457974214299605143545635620",
"315925400125903403880983370378305367228",
"139794642288632249766722972980187549045",
"299486479859480099952985551149926011321"
],
"threshold": 0.9
},
"id": "CVE-2026-41207-8bdb62d4",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://github.com/netty/netty-incubator-codec-ohttp/commit/3d3b4e527fc82ad0fe3db1af951ffd0ec9a10680",
"target": {
"file": "codec-ohttp/src/main/java/io/netty/incubator/codec/ohttp/OHttpCrypto.java"
}
},
{
"deprecated": false,
"digest": {
"line_hashes": [
"89770105944879964735227592200838843872",
"36430370888779228072713178177348252156",
"139775039433499573660859399885888981216",
"337822994993676303578394998860342743111",
"61694337465821252632063166644914258549",
"143355824796451236660567251202255611031",
"61874443192965715447993736684156896348",
"308685607667250291659610686674304420884"
],
"threshold": 0.9
},
"id": "CVE-2026-41207-8d8098ea",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://github.com/netty/netty-incubator-codec-ohttp/commit/3d3b4e527fc82ad0fe3db1af951ffd0ec9a10680",
"target": {
"file": "codec-ohttp/src/main/java/io/netty/incubator/codec/ohttp/OHttpCryptoSender.java"
}
},
{
"deprecated": false,
"digest": {
"function_hash": "14277728930059405881190460601147587645",
"length": 109
},
"id": "CVE-2026-41207-b9d8f7ea",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/netty/netty-incubator-codec-ohttp/commit/3d3b4e527fc82ad0fe3db1af951ffd0ec9a10680",
"target": {
"file": "codec-ohttp-hpke-bouncycastle/src/main/java/io/netty/incubator/codec/hpke/bouncycastle/BouncyCastleHPKEContext.java",
"function": "extract"
}
},
{
"deprecated": false,
"digest": {
"line_hashes": [
"183722467502012968877382744969153213051",
"331788388454430196325032898844041286981",
"43991702014970699746341270967519525449",
"305692493524122458975348681714529525208"
],
"threshold": 0.9
},
"id": "CVE-2026-41207-bb20f624",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://github.com/netty/netty-incubator-codec-ohttp/commit/3d3b4e527fc82ad0fe3db1af951ffd0ec9a10680",
"target": {
"file": "codec-ohttp/src/main/java/io/netty/incubator/codec/ohttp/OHttpClientCodec.java"
}
},
{
"deprecated": false,
"digest": {
"function_hash": "277363262444741313241497565375063247644",
"length": 131
},
"id": "CVE-2026-41207-e42dc86a",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/netty/netty-incubator-codec-ohttp/commit/3d3b4e527fc82ad0fe3db1af951ffd0ec9a10680",
"target": {
"file": "codec-ohttp-hpke-bouncycastle/src/main/java/io/netty/incubator/codec/hpke/bouncycastle/BouncyCastleHPKEContext.java",
"function": "expand"
}
},
{
"deprecated": false,
"digest": {
"function_hash": "191604943394562836595206633824155104869",
"length": 905
},
"id": "CVE-2026-41207-e9db0dd8",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/netty/netty-incubator-codec-ohttp/commit/3d3b4e527fc82ad0fe3db1af951ffd0ec9a10680",
"target": {
"file": "codec-ohttp/src/main/java/io/netty/incubator/codec/ohttp/OHttpCryptoReceiver.java",
"function": "OHttpCryptoReceiver"
}
},
{
"deprecated": false,
"digest": {
"line_hashes": [
"118581824169461571099017057419131069619",
"110987698324187470174811204080579869760",
"216700113712260383101723520887905652900",
"276745516955758504246637214747937426837",
"219816902329497576776347315404279269030",
"71391460139504312754577654075406038598",
"147637746668393889787463310294989230182",
"173287104932987304599666498464434486024",
"303738210083235949387696899270971438132",
"224695834737222357843275619145284087272",
"637610242267985092096009305221321860",
"124194102507058480527886551282339320072",
"250596344366143062002983776940462357865",
"48637575505389218456739050051085345487",
"22268330983999534348623216096456330914",
"231459955850204013290394555127647035718",
"313189648976076046640140043091969231237"
],
"threshold": 0.9
},
"id": "CVE-2026-41207-f084b825",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://github.com/netty/netty-incubator-codec-ohttp/commit/3d3b4e527fc82ad0fe3db1af951ffd0ec9a10680",
"target": {
"file": "codec-ohttp-hpke-bouncycastle/src/main/java/io/netty/incubator/codec/hpke/bouncycastle/BouncyCastleHPKEContext.java"
}
},
{
"deprecated": false,
"digest": {
"function_hash": "281442328385478775259006558287897558385",
"length": 105
},
"id": "CVE-2026-41207-f55f5959",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/netty/netty-incubator-codec-ohttp/commit/3d3b4e527fc82ad0fe3db1af951ffd0ec9a10680",
"target": {
"file": "codec-ohttp-hpke-classes-boringssl/src/main/java/io/netty/incubator/codec/hpke/boringssl/BoringSSLHPKEContext.java",
"function": "extract"
}
}
]
"2026-08-12T16:25:10Z"