fix(web): restrict postMessage targetOrigin from wildcard to specific origins#30690
fix(web): restrict postMessage targetOrigin from wildcard to specific origins#30690iamjoel merged 1 commit intolanggenius:mainfrom
Conversation
Summary of ChangesHello @xuwei95, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request significantly enhances the security posture of the web frontend by tightening the Highlights
🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console. Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
Code Review
This pull request is a good step towards enhancing security by restricting the targetOrigin in postMessage calls. The changes correctly identify the need to move away from a wildcard origin. However, the implementation in both modified files includes a fallback to '*', which could re-introduce the security vulnerability this PR aims to fix. My review includes suggestions to eliminate this fallback, particularly in use-oauth.ts where sensitive data is handled, and to improve the robustness of the origin detection in the embedded chatbot header.
| Please link an issue in the description :) |
Summary
This PR fixes a security vulnerability (CVE) related to
postMessageusage in the web frontend. The changes restrict thetargetOriginparameter from wildcard (*) to specific origins.Fixes #30723
Changes
Embedded Chatbot (
web/app/components/base/chat/embedded-chatbot/header/index.tsx):postMessage(..., '*')to usingdocument.referrerto determine parent origin'*'only if referrer is unavailableOAuth Hook (
web/hooks/use-oauth.ts):postMessage(..., '*')to usingwindow.opener.origin'*'only if opener origin is unavailableChecklist
make lintandmake type-check(backend) andcd web && npx lint-staged(frontend) to appease the lint gods