{"id":"CVE-2026-47775","aliases":["BIT-envoy-2026-47775","EUVD-2026-39817","GHSA-396h-jpq4-vc7p","openSUSE-SU-2026:11141-1"],"status":"published","title":"Envoy OAuth2 Filter: Padding Oracle via AES-256-CBC Cookie Decryption","description":"Envoy is an open source edge and service proxy designed for cloud-native applications. Prior to 1.35.11, 1.36.7, 1.37.3, and 1.38.1, the OAuth2 HTTP filter's encrypt()/decrypt() functions use AES-256-CBC without an authentication tag (no HMAC, no AEAD). The /callback endpoint returns HTTP 302 on successful decryption and HTTP 401 on padding failure, creating a padding oracle. An attacker who obtains the encrypted CodeVerifier cookie can recover the plaintext PKCE code_verifier in ~6,200 requests (~100 seconds), then exchange it with a stolen authorization code to obtain the victim's access token. This vulnerability is fixed in 1.35.11, 1.36.7, 1.37.3, and 1.38.1.","severity":{"version":"3.1","score":6.8,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:N","level":"medium","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-11","score":0.00219,"percentile":0.12558,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-209","CWE-327"],"published":"2026-06-26T17:23:51Z","modified":"2026-10-28T02:31:14Z","fixes":[{"ecosystem":"Bitnami","package":"envoy","fixed_in":["1.35.11","1.36.7","1.37.3","1.38.1"],"sources":["osv"]}],"affected":[{"source":"osv","ecosystem":"Bitnami","package":"envoy","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"1.35.11"},{"introduced":"1.36.0"},{"fixed":"1.36.7"},{"introduced":"1.37.0"},{"fixed":"1.37.3"},{"introduced":"1.38.0"},{"fixed":"1.38.1"}]}]},{"source":"osv","ecosystem":"openSUSE:Tumbleweed","package":"istioctl","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.30.2-1.1"}]}],"bundled":14}],"products":[{"vendor":"envoyproxy","product":"envoy"}],"references":[{"url":"https://github.com/envoyproxy/envoy/security/advisories/GHSA-396h-jpq4-vc7p","tags":["x_refsource_CONFIRM","exploit","Exploit","Vendor Advisory","Mitigation","advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-47775","tags":["web","advisory"]},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/47xxx/CVE-2026-47775.json","tags":["advisory"]},{"url":"","tags":["advisory"]},{"url":"https://www.suse.com/security/cve/CVE-2026-47204","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-47205","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-47207","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-47220","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-47221","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-47692","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-47775","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-47778","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-48042","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-48044","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-48090","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-48497","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-48706","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-48743","tags":["web"]}],"sources":{"cve":[{"id":"CVE-2026-47775","title":"Envoy OAuth2 Filter: Padding Oracle via AES-256-CBC Cookie Decryption","description":"Envoy is an open source edge and service proxy designed for cloud-native applications. Prior to 1.35.11, 1.36.7, 1.37.3, and 1.38.1, the OAuth2 HTTP filter's encrypt()/decrypt() functions use AES-256-CBC without an authentication tag (no HMAC, no AEAD). The /callback endpoint returns HTTP 302 on successful decryption and HTTP 401 on padding failure, creating a padding oracle. An attacker who obtains the encrypted CodeVerifier cookie can recover the plaintext PKCE code_verifier in ~6,200 requests (~100 seconds), then exchange it with a stolen authorization code to obtain the victim's access token. This vulnerability is fixed in 1.35.11, 1.36.7, 1.37.3, and 1.38.1.","status":"published","published":"2026-06-26T17:23:51.663Z","modified":"2026-06-29T15:20:39.815Z","cvss":[{"version":"3.1","score":6.8,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:N","level":"medium","assessor":"cna"}],"cwes":["CWE-209","CWE-327"],"updated_at":"2026-11-02T13:36:40.478484Z"}],"euvd":[{"id":"EUVD-2026-39817","description":"Envoy is an open source edge and service proxy designed for cloud-native applications. Prior to 1.35.11, 1.36.7, 1.37.3, and 1.38.1, the OAuth2 HTTP filter's encrypt()/decrypt() functions use AES-256-CBC without an authentication tag (no HMAC, no AEAD). The /callback endpoint returns HTTP 302 on successful decryption and HTTP 401 on padding failure, creating a padding oracle. An attacker who obtains the encrypted CodeVerifier cookie can recover the plaintext PKCE code_verifier in ~6,200 requests (~100 seconds), then exchange it with a stolen authorization code to obtain the victim's access token. This vulnerability is fixed in 1.35.11, 1.36.7, 1.37.3, and 1.38.1.","status":"published","published":"2026-06-26T17:23:51Z","modified":"2026-06-29T15:20:39Z","cvss":[{"version":"3.1","score":6.8,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:N","level":"medium"}],"updated_at":"2026-11-02T18:20:22.506413Z"}],"nvd":[{"id":"CVE-2026-47775","description":"Envoy is an open source edge and service proxy designed for cloud-native applications. Prior to 1.35.11, 1.36.7, 1.37.3, and 1.38.1, the OAuth2 HTTP filter's encrypt()/decrypt() functions use AES-256-CBC without an authentication tag (no HMAC, no AEAD). The /callback endpoint returns HTTP 302 on successful decryption and HTTP 401 on padding failure, creating a padding oracle. An attacker who obtains the encrypted CodeVerifier cookie can recover the plaintext PKCE code_verifier in ~6,200 requests (~100 seconds), then exchange it with a stolen authorization code to obtain the victim's access token. This vulnerability is fixed in 1.35.11, 1.36.7, 1.37.3, and 1.38.1.","status":"published","published":"2026-06-26T18:16:59.35Z","modified":"2026-10-25T17:10:00.197Z","cvss":[{"version":"3.1","score":6.8,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:N","level":"medium","assessor":"secondary"}],"cwes":["CWE-209","CWE-327"],"updated_at":"2026-11-02T14:12:26.045561Z"}],"osv":[{"id":"CVE-2026-47775","title":"Envoy OAuth2 Filter: Padding Oracle via AES-256-CBC Cookie Decryption","description":"Envoy is an open source edge and service proxy designed for cloud-native applications. Prior to 1.35.11, 1.36.7, 1.37.3, and 1.38.1, the OAuth2 HTTP filter's encrypt()/decrypt() functions use AES-256-CBC without an authentication tag (no HMAC, no AEAD). The /callback endpoint returns HTTP 302 on successful decryption and HTTP 401 on padding failure, creating a padding oracle. An attacker who obtains the encrypted CodeVerifier cookie can recover the plaintext PKCE code_verifier in ~6,200 requests (~100 seconds), then exchange it with a stolen authorization code to obtain the victim's access token. This vulnerability is fixed in 1.35.11, 1.36.7, 1.37.3, and 1.38.1.","status":"published","published":"2026-06-26T17:23:51.663Z","modified":"2026-10-28T02:31:14.322903002Z","cvss":[{"version":"3.1","score":6.8,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:N","level":"medium"}],"cwes":["CWE-209","CWE-327"],"updated_at":"2026-11-02T15:45:06.231145Z"},{"id":"BIT-envoy-2026-47775","title":"Envoy OAuth2 Filter: Padding Oracle via AES-256-CBC Cookie Decryption","description":"Envoy is an open source edge and service proxy designed for cloud-native applications. Prior to 1.35.11, 1.36.7, 1.37.3, and 1.38.1, the OAuth2 HTTP filter's encrypt()/decrypt() functions use AES-256-CBC without an authentication tag (no HMAC, no AEAD). The /callback endpoint returns HTTP 302 on successful decryption and HTTP 401 on padding failure, creating a padding oracle. An attacker who obtains the encrypted CodeVerifier cookie can recover the plaintext PKCE code_verifier in ~6,200 requests (~100 seconds), then exchange it with a stolen authorization code to obtain the victim's access token. This vulnerability is fixed in 1.35.11, 1.36.7, 1.37.3, and 1.38.1.","status":"published","published":"2026-06-30T23:39:29.055Z","modified":"2026-09-08T08:47:28.133709012Z","updated_at":"2026-11-02T15:28:29.563843Z"},{"id":"openSUSE-SU-2026:11141-1","title":"istioctl-1.30.2-1.1 on GA media","description":"These are all security issues fixed in the istioctl-1.30.2-1.1 package on the GA media of openSUSE Tumbleweed.","status":"published","published":"2026-06-28T00:00:00Z","modified":"2026-06-29T09:45:08.482872076Z","updated_at":"2026-11-02T16:58:38.95195Z"}]}}
