Proxygen lacked a generalized slow-consumer detection mechanism in its core HTTP session layer. A remote, unauthenticated attacker could exploit HTTP/2 flow-control by setting SETTINGSINITIALWINDOWSIZE to 0 or withholding WINDOWUPDATE frames, causing the server to buffer complete response bodies in memory indefinitely for stalled streams. By opening many simultaneous streams requesting large resources while preventing the server from transmitting responses, an attacker could induce unbounded memory growth leading to service degradation, resource exhaustion, or denial of service. Versions v2017.01.16.00 through v2026.07.20.00 are affected.
"2026-07-26T03:40:48Z"
[
{
"target": {
"file": "proxygen/lib/http/session/HTTPSession.cpp"
},
"id": "CVE-2026-44909-0e67f14c",
"digest": {
"line_hashes": [
"332408444260321538646249096046650660852",
"58514956720517978933535565216641678999",
"156097465629833341435506398996225755779",
"73331317778703964331353122194347073024",
"226636281879201856080895608111154559104",
"89142490694190057824407952579314017713",
"311660088383094195931520276719737626243",
"14945030273901739245730622259122119202",
"278659671168714750455255070980927752459",
"232431631301702764280250123360325111630",
"27772813169585031140222029841800433651",
"22886138148176856191852028739996896386",
"165410209629101710679251018857771152553",
"183657497971688981624538882001518272762",
"214451281174138073733747298891427281179",
"51054759617272962863464063205081920272",
"111410300520222265392822717869924605554",
"182317225123580957627770355275640081162",
"137144968512691148361073539413622657533"
],
"threshold": 0.9
},
"deprecated": false,
"signature_version": "v1",
"signature_type": "Line",
"source": "https://github.com/facebook/proxygen/commit/f28742f21f7022c261b7620d4e6b20d82b6cff72"
},
{
"target": {
"file": "proxygen/lib/http/session/test/HQDownstreamSessionTest.cpp"
},
"id": "CVE-2026-44909-1d9ad326",
"digest": {
"line_hashes": [
"27091189217822543432435570647960092700",
"269690233450692845750051369512974821762",
"30182906722407926987789894111041206514"
],
"threshold": 0.9
},
"deprecated": false,
"signature_version": "v1",
"signature_type": "Line",
"source": "https://github.com/facebook/proxygen/commit/f28742f21f7022c261b7620d4e6b20d82b6cff72"
},
{
"target": {
"file": "proxygen/lib/http/session/HQSession.cpp"
},
"id": "CVE-2026-44909-28050616",
"digest": {
"line_hashes": [
"84986315785992090107585643421901387627",
"68801028107220005876814404938533132804",
"248775701739052610912280288511567829691",
"240137758134351427998854742227411256436"
],
"threshold": 0.9
},
"deprecated": false,
"signature_version": "v1",
"signature_type": "Line",
"source": "https://github.com/facebook/proxygen/commit/f28742f21f7022c261b7620d4e6b20d82b6cff72"
},
{
"target": {
"function": "HQUpstreamSession::detachThreadLocals",
"file": "proxygen/lib/http/session/HQUpstreamSession.cpp"
},
"id": "CVE-2026-44909-28a46999",
"digest": {
"function_hash": "288147410430390208405575415835246111440",
"length": 351.0
},
"deprecated": false,
"signature_version": "v1",
"signature_type": "Function",
"source": "https://github.com/facebook/proxygen/commit/f28742f21f7022c261b7620d4e6b20d82b6cff72"
},
{
"target": {
"file": "proxygen/lib/http/session/HTTPSession.h"
},
"id": "CVE-2026-44909-652fc484",
"digest": {
"line_hashes": [
"120596880918706797407089570092337791980",
"189497348339643203543550696546704466928",
"319911048285961567220352429005583194685",
"13985038475746957881780556767970980320",
"211616190698236988429216941604009886756",
"113349371494865028240009061056211828432",
"13312276686263909051769410381527999798",
"171185540871456745204837264858771045601",
"303006563007506719384530270562984154031"
],
"threshold": 0.9
},
"deprecated": false,
"signature_version": "v1",
"signature_type": "Line",
"source": "https://github.com/facebook/proxygen/commit/f28742f21f7022c261b7620d4e6b20d82b6cff72"
},
{
"target": {
"file": "proxygen/lib/http/session/test/HTTPDownstreamSessionTest.cpp"
},
"id": "CVE-2026-44909-6531a1f4",
"digest": {
"line_hashes": [
"197402501449329962171262229851432913294",
"296978667893364613338966926994061735470",
"209421745458046637457811942017132554328",
"333300107649384890542906881984493459191",
"91819851903319491155975541648953382882",
"328175479523849579248445488426415142466"
],
"threshold": 0.9
},
"deprecated": false,
"signature_version": "v1",
"signature_type": "Line",
"source": "https://github.com/facebook/proxygen/commit/f28742f21f7022c261b7620d4e6b20d82b6cff72"
},
{
"target": {
"file": "proxygen/lib/http/session/HTTPSessionBase.h"
},
"id": "CVE-2026-44909-74ea50f9",
"digest": {
"line_hashes": [
"175993130971566371558164956763856999361",
"65269507789533702678480714200884305680",
"300392924363625873799822615296413984597",
"231557400799777326198870639267365432993",
"141305891711793661976299891633188659839",
"56374552044710294952779282582637214274",
"12672402629643670534315243358446483381",
"312700476328206094765829489298989542853",
"52930060093873977690091377133190447588",
"57418288617408411471158244589365562075",
"73752636206581848626550542512028826214",
"306214066860876271657058838589551637083",
"100194951343416203955711790507901702789"
],
"threshold": 0.9
},
"deprecated": false,
"signature_version": "v1",
"signature_type": "Line",
"source": "https://github.com/facebook/proxygen/commit/f28742f21f7022c261b7620d4e6b20d82b6cff72"
},
{
"target": {
"function": "HQSession::handleWrite",
"file": "proxygen/lib/http/session/HQSession.cpp"
},
"id": "CVE-2026-44909-782ee4c6",
"digest": {
"function_hash": "285499734540070789905259783694771075232",
"length": 780.0
},
"deprecated": false,
"signature_version": "v1",
"signature_type": "Function",
"source": "https://github.com/facebook/proxygen/commit/f28742f21f7022c261b7620d4e6b20d82b6cff72"
},
{
"target": {
"function": "HTTPSessionBase::~HTTPSessionBase",
"file": "proxygen/lib/http/session/HTTPSessionBase.cpp"
},
"id": "CVE-2026-44909-7df4a09d",
"digest": {
"function_hash": "67643622878778609651646295890916443773",
"length": 244.0
},
"deprecated": false,
"signature_version": "v1",
"signature_type": "Function",
"source": "https://github.com/facebook/proxygen/commit/f28742f21f7022c261b7620d4e6b20d82b6cff72"
},
{
"target": {
"function": "HTTPSessionBase::updateWriteBufSize",
"file": "proxygen/lib/http/session/HTTPSessionBase.cpp"
},
"id": "CVE-2026-44909-7e0621e1",
"digest": {
"function_hash": "304992390366627615028756558319152105896",
"length": 312.0
},
"deprecated": false,
"signature_version": "v1",
"signature_type": "Function",
"source": "https://github.com/facebook/proxygen/commit/f28742f21f7022c261b7620d4e6b20d82b6cff72"
},
{
"target": {
"function": "HTTPSessionBase::HTTPSessionBase",
"file": "proxygen/lib/http/session/HTTPSessionBase.cpp"
},
"id": "CVE-2026-44909-a3dc83ae",
"digest": {
"function_hash": "237939098775682782604771145686842165573",
"length": 448.0
},
"deprecated": false,
"signature_version": "v1",
"signature_type": "Function",
"source": "https://github.com/facebook/proxygen/commit/f28742f21f7022c261b7620d4e6b20d82b6cff72"
},
{
"target": {
"function": "HTTPUpstreamSession::detachThreadLocals",
"file": "proxygen/lib/http/session/HTTPUpstreamSession.cpp"
},
"id": "CVE-2026-44909-b6fee96c",
"digest": {
"function_hash": "80771559354866433016239105831732675736",
"length": 501.0
},
"deprecated": false,
"signature_version": "v1",
"signature_type": "Function",
"source": "https://github.com/facebook/proxygen/commit/f28742f21f7022c261b7620d4e6b20d82b6cff72"
},
{
"target": {
"file": "proxygen/lib/http/session/HTTPUpstreamSession.cpp"
},
"id": "CVE-2026-44909-d05dbfeb",
"digest": {
"line_hashes": [
"137206961227123421358324455306401361070",
"163496075743221997629217668409713670050",
"270620552304858847959464371092614027299",
"316938990393907395951186029300548741716"
],
"threshold": 0.9
},
"deprecated": false,
"signature_version": "v1",
"signature_type": "Line",
"source": "https://github.com/facebook/proxygen/commit/f28742f21f7022c261b7620d4e6b20d82b6cff72"
},
{
"target": {
"file": "proxygen/lib/http/session/HTTPSessionBase.cpp"
},
"id": "CVE-2026-44909-d4db1b1f",
"digest": {
"line_hashes": [
"132446301996966035610347237247842270068",
"82138451999803129614797688095745201006",
"314924068273005519814458228277160721391",
"254498948415905534371051752232647223722",
"84349837686088005550182205213881594133",
"129590689838331541839398894595988979288",
"294223610186645608115731797862083007137",
"337171001608051018900167244563617677038",
"144586673105553581556514414488487911338",
"311615363964801021791257368601640038511",
"139498477315009747147384525658773436985",
"228760549075698916018550277995512521226",
"144243755065398626143509911498232513934",
"225728891004793342779552288178806794713",
"170979415534328586414571561591656494217",
"5921563843315654895886777140099971544",
"103908967732217329267227864349317543341",
"161091156128843023890269003527490361171"
],
"threshold": 0.9
},
"deprecated": false,
"signature_version": "v1",
"signature_type": "Line",
"source": "https://github.com/facebook/proxygen/commit/f28742f21f7022c261b7620d4e6b20d82b6cff72"
},
{
"target": {
"file": "proxygen/lib/http/session/HQUpstreamSession.cpp"
},
"id": "CVE-2026-44909-e2c34d70",
"digest": {
"line_hashes": [
"132353645309063301904098681869896571784",
"234053658843020341367866653383051434631",
"75888804995437442303510581913541191906",
"259053981195409545066686442874218387611"
],
"threshold": 0.9
},
"deprecated": false,
"signature_version": "v1",
"signature_type": "Line",
"source": "https://github.com/facebook/proxygen/commit/f28742f21f7022c261b7620d4e6b20d82b6cff72"
}
]
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-44909.json"