{"data":{"id":"63f6c3cb-dd25-48d8-b025-5ae867be432d","title":"GHSA-r7w7-9xr2-qq2r: langchain-openai: Image token counting SSRF protection can be bypassed via DNS rebinding","summary":"langchain-openai versions before 1.1.14 validated image URLs for SSRF protection in `_url_to_size()`, then fetched them with a separate DNS resolution, leaving a DNS rebinding window where a hostname could resolve to a public IP during validation and a private or localhost IP during the fetch. The fetched body is passed only to Pillow's `Image.open()` and never returned or logged, so an attacker cannot exfiltrate data, though blind probing of internal hosts and ports may be possible.","solution":"Fixed in langchain-openai 1.1.14 (requires langchain-core >= 1.2.31). The fix replaces validate-then-fetch with `SSRFSafeSyncTransport` from langchain-core, which resolves DNS once, validates returned IPs against a policy, pins the connection to the validated IP, and disables redirect following.","labels":["security"],"sourceUrl":"https://github.com/advisories/GHSA-r7w7-9xr2-qq2r","publishedAt":"2026-04-16T23:00:12.000Z","cveId":null,"cweIds":null,"cvssScore":null,"cvssSeverity":"low","severity":"low","attackType":["other"],"issueType":"vulnerability","affectedPackages":["langchain-openai@< 1.1.14 (fixed: 1.1.14)"],"affectedPackageNames":["langchain-openai"],"affectedPackageRefs":["pypi:langchain-openai"],"affectedVendors":["OpenAI","LangChain"],"affectedVendorsRaw":["langchain-openai","LangChain","OpenAI"],"classifierModel":"claude-haiku-5-5","classifierPromptVersion":"v4","summaryPromptVersion":"v2","headline":null,"headlinePromptVersion":null,"cvssVector":null,"attackVector":null,"attackComplexity":null,"privilegesRequired":null,"userInteraction":null,"exploitMaturity":null,"epssScore":null,"epssCheckedAt":null,"kevDateAdded":null,"advisoryAliases":["GHSA-r7w7-9xr2-qq2r"],"affectedPackagesSource":null,"affectedPackagesCheckedAt":null,"patchAvailable":true,"disclosureDate":"2026-04-16T23:00:12.000Z","capecIds":null,"crossRefCount":0,"attackSophistication":"advanced","impactType":["confidentiality"],"aiComponentTargeted":"api","llmSpecific":false,"classifierConfidence":0.9,"researchCategory":null,"atlasIds":null}}