{"id":"CVE-2021-3116","aliases":["EUVD-2021-0203","GHSA-cmc7-mfmr-xqrx","PYSEC-2021-46"],"status":"published","title":"Logic error in authentication in proxy.py","description":"before_upstream_connection in AuthPlugin in http/proxy/auth.py in proxy.py before 2.3.1 accepts incorrect Proxy-Authorization header data because of a boolean confusion (and versus or).","severity":{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N","level":"high","assessor":"primary","from":"nvd"},"epss":{"day":"2026-11-09","score":0.01694,"percentile":0.7729,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-287","CWE-480","CWE-697"],"published":"2021-01-11T05:00:49Z","modified":"2026-10-20T10:54:40Z","fixes":[{"ecosystem":"PyPI","package":"proxy-py","fixed_in":["2.3.1"],"sources":["ghsa","osv"]}],"affected":[{"source":"ghsa","ecosystem":"PyPI","package":"proxy-py","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.3.1"}]}]},{"source":"osv","ecosystem":"PyPI","package":"proxy-py","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.3.1"}]}],"versions":["0.1","0.2","0.3","1.0.0","1.1.0","1.1.1","2.0.0","2.1.1","2.1.2","2.2.0"]},{"source":"osv","ecosystem":"PyPI","package":"proxy-py","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.3.1"}]}],"versions":["0.1","0.2","0.3","1.0.0","1.1.0","1.1.1","2.0.0","2.1.1","2.1.2","2.2.0"]}],"products":[{"vendor":"proxy.py_project","product":"proxy.py"}],"references":[{"url":"https://cardaci.xyz/advisories/2021/01/10/proxy.py-2.3.0-broken-basic-authentication/","tags":["x_refsource_MISC","x_transferred","Exploit","Third Party Advisory","evidence","advisory"]},{"url":"https://github.com/abhinavsingh/proxy.py/pull/482/commits/9b00093288237f5073c403f2c4f62acfdfa8ed46","tags":["x_refsource_MISC","x_transferred","Patch","fix","web"]},{"url":"https://pypi.org/project/proxy.py/2.3.1/#history","tags":["x_refsource_MISC","x_transferred","Product","package","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2021-3116","tags":["advisory"]},{"url":"https://github.com/pypa/advisory-database/tree/main/vulns/proxy-py/PYSEC-2021-46.yaml","tags":["web"]},{"url":"https://github.com/abhinavsingh/proxy.py/pull/482","tags":["web"]},{"url":"https://github.com/abhinavsingh/proxy.py/commit/bff171ec26d826ae1d22d2466eaf9d8bdbf059d3","tags":["web"]},{"url":"https://cardaci.xyz/advisories/2021/01/10/proxy.py-2.3.0-broken-basic-authentication","tags":["web"]},{"url":"https://github.com/advisories/GHSA-cmc7-mfmr-xqrx","tags":["advisory"]},{"url":"https://github.com/abhinavsingh/proxy.py","tags":["package"]}],"sources":{"cve":[{"id":"CVE-2021-3116","description":"before_upstream_connection in AuthPlugin in http/proxy/auth.py in proxy.py before 2.3.1 accepts incorrect Proxy-Authorization header data because of a boolean confusion (and versus or).","status":"published","published":"2021-01-11T05:00:49Z","modified":"2024-08-03T16:45:51.254Z","updated_at":"2026-11-02T14:33:04.020035Z"}],"euvd":[{"id":"EUVD-2021-0203","description":"before_upstream_connection in AuthPlugin in http/proxy/auth.py in proxy.py before 2.3.1 accepts incorrect Proxy-Authorization header data because of a boolean confusion (and versus or).","status":"published","published":"2021-01-11T05:00:49Z","modified":"2024-08-03T16:45:51Z","updated_at":"2026-11-03T03:25:14.091701Z"}],"ghsa":[{"id":"GHSA-cmc7-mfmr-xqrx","title":"Logic error in authentication in proxy.py","description":"before_upstream_connection in AuthPlugin in http/proxy/auth.py in proxy.py before 2.3.1 accepts incorrect Proxy-Authorization header data because of a boolean confusion (and versus or).","status":"published","published":"2021-04-07T21:01:25Z","modified":"2026-03-23T05:10:20Z","cvss":[{"version":"4.0","score":8.7,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N","level":"high"},{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N","level":"high"}],"cwes":["CWE-287","CWE-480","CWE-697"],"updated_at":"2026-11-02T14:39:40.633038Z"}],"nvd":[{"id":"CVE-2021-3116","description":"before_upstream_connection in AuthPlugin in http/proxy/auth.py in proxy.py before 2.3.1 accepts incorrect Proxy-Authorization header data because of a boolean confusion (and versus or).","status":"published","published":"2021-01-11T05:15:10.987Z","modified":"2026-06-17T04:04:41.733Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N","level":"high","assessor":"primary"},{"version":"2.0","score":5,"vector":"AV:N/AC:L/Au:N/C:N/I:P/A:N","level":"medium","assessor":"primary"}],"cwes":["CWE-697"],"updated_at":"2026-11-02T14:06:49.284888Z"}],"osv":[{"id":"CVE-2021-3116","description":"before_upstream_connection in AuthPlugin in http/proxy/auth.py in proxy.py before 2.3.1 accepts incorrect Proxy-Authorization header data because of a boolean confusion (and versus or).","status":"published","published":"2021-01-11T05:15:10.987Z","modified":"2026-10-20T10:54:40.211843397Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N","level":"high"}],"updated_at":"2026-11-02T15:44:19.483607Z"},{"id":"GHSA-cmc7-mfmr-xqrx","title":"Logic error in authentication in proxy.py","description":"before_upstream_connection in AuthPlugin in http/proxy/auth.py in proxy.py before 2.3.1 accepts incorrect Proxy-Authorization header data because of a boolean confusion (and versus or).","status":"published","published":"2021-04-07T21:01:25Z","modified":"2024-10-21T21:23:38.100628Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N","level":"high"},{"version":"4.0","score":8.7,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N","level":"high"}],"cwes":["CWE-287","CWE-480","CWE-697"],"updated_at":"2026-11-02T15:46:45.28161Z"},{"id":"PYSEC-2021-46","description":"before_upstream_connection in AuthPlugin in http/proxy/auth.py in proxy.py before 2.3.1 accepts incorrect Proxy-Authorization header data because of a boolean confusion (and versus or).","status":"published","published":"2021-01-11T05:15:00Z","modified":"2023-11-08T04:05:47.192874Z","updated_at":"2026-11-02T15:52:53.119977Z"}]}}
