fix(openai): allow RFC 2544 fake-IP range for Realtime session requests#86526
Conversation
|
Codex review: needs maintainer review before merge. Reviewed July 5, 2026, 11:48 AM ET / 15:48 UTC. Summary PR surface: Source +9, Tests +20, Other 0. Total +29 across 5 files. Reproducibility: yes. with high confidence from source and supplied proof rather than a local fake-IP run: current Review metrics: 3 noteworthy metrics.
Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Risk before merge
Maintainer options:
Next step before merge
Maintainer decision needed
Security Review detailsBest possible solution: Land a rebased, policy-approved Realtime fix; if maintainers do not want the new SDK export, keep the same host-scoped policy local to the OpenAI plugin. Do we have a high-confidence way to reproduce the issue? Yes, with high confidence from source and supplied proof rather than a local fake-IP run: current Is this the best way to solve the issue? Yes as a narrow implementation, pending maintainer policy acceptance. Reusing the existing host-scoped fake-IP policy in the shared Realtime secret helper covers both voice and transcription without broadly allowing private networks; keeping the policy local is the safer alternative if maintainers do not want a public SDK export. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against a308e3b83429. Label changesLabel changes:
Label justifications:
Evidence reviewedPR surface: Source +9, Tests +20, Other 0. Total +29 across 5 files. View PR surface stats
Security concerns:
What I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
Review history (3 earlier review cycles) |
|
ClawSweeper PR egg ✨ Hatched: 🥚 common Neon Review Wisp Hatch commandComment Hatchability rules:
Rarity: 🥚 common. What is this egg doing here?
|
|
/recheck |
89f9ec8 to
df4eae8
Compare
df4eae8 to
b25519a
Compare
b25519a to
8d5d785
Compare
114bb7b to
6cb8194
Compare
6cb8194 to
621f9a5
Compare
|
@clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. Re-review progress:
|
621f9a5 to
49b9ba0
Compare
49b9ba0 to
f1c6bc6
Compare
Co-authored-by: shushushu <[email protected]>
|
This assigned pull request has been automatically marked as stale after being open for 27 days. |
|
Land-ready maintainer rewrite completed.
Known live-proof gap: I did not have a second authenticated Clash/Surge TUN profile. The contributor's credentialed before/after Realtime proof remains in the PR body, and both secret endpoints assert the exact policy in regression tests. |
|
Merged via squash.
|

What Problem This Solves
OpenAI Realtime session-secret requests fail behind Clash-, Surge-, or sing-box-style TUN/fake-IP DNS when
api.openai.comresolves into a documented fake-IP range. The generic SSRF guard correctly rejects those private-looking addresses unless the fixed provider hostname explicitly opts in.Closes the remaining Realtime-specific part of #56535.
Why This Change Was Made
Both Realtime secret endpoints now share one OpenAI-owned SSRF policy. It permits RFC 2544 benchmark addresses and IPv6 unique-local addresses only for
api.openai.com; the existing guard still checks redirects and rejects every non-allowlisted hostname and protected address class.The maintainer rewrite intentionally keeps this policy inside the OpenAI plugin. The original public plugin-SDK export and API-budget changes were removed because there is no second consumer.
User Impact
Realtime voice and transcription session setup can work through TUN/fake-IP proxy DNS without weakening SSRF checks for arbitrary hosts. Users outside those proxy environments see no behavior change and gain no new configuration surface.
Evidence
tbx_01kwxddkwq631x975x00zmd94t: 74 focused tests passed across the shared helper, Realtime voice, and Realtime transcription.talk.client.createreturnedok: true, audio streaming stayed active, and the Realtime response completed. Screenshot: https://github.com/user-attachments/assets/87a884d2-2902-4915-ade1-99993691d5daKnown gap: no independent authenticated OpenAI Realtime call was available through a second local Clash/Surge profile. Exact policy propagation for both endpoints is regression-tested.