New issue
Advanced search Search tips

Issue 859253 link

Starred by 1 user

Issue metadata

Status: WontFix
Owner:
Closed: Jul 16
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 1
Type: Bug-Security



Sign in to add a comment

CSP issues in payment app manifests

Reported by s.h.h.n....@gmail.com, Jun 30 2018

Issue description

UserAgent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36

Steps to reproduce the problem:
1. Enable #service-worker-payment-apps and #just-in-time-service-worker-payment-app flags
2. Go to https://vuln.shhnjk.com/csp_fest.php
3. Click go buttons

What is the expected behavior?
Payment app not installed

What went wrong?
CSP has directive called "manifest-src". This needs to be taken into consideration when fetching manifest files. Both web app manifest and payment method manifest are not checked against document's CSP policy nor manifest's CSP response header when installing JIT payment app (though, payment method manifest could be fetched without JIT). And it seems like payment method manifest's spec doesn't have CSP consideration at all.

Did this work before? N/A 

Chrome version: 69  Channel: dev
OS Version: 10.0
Flash Version: 

Though, Web app manifest's icon is checked against document's CSP :D
 
Components: Blink>SecurityFeature
Labels: Security_Severity-Medium Security_Impact-Stable
Owner: mkwst@chromium.org
Status: Assigned (was: Unconfirmed)
Project Member

Comment 3 by sheriffbot@chromium.org, Jul 3

Labels: M-68 Target-68
Project Member

Comment 4 by sheriffbot@chromium.org, Jul 3

Labels: -Pri-2 Pri-1
Owner: rouslan@chromium.org
It's not at all clear to me how the payment app is actually being installed, and which page's policy should apply. If we're installing a Service Worker for some other origin, then it's not clear to me that the initiator document's `manifest-src` should apply, as it doesn't actually affect the given origin, but I also don't really understand the capabilities that payment handlers expose. Perhaps they should be governed by `manifest-src` (though that would potentially break sites that set `default-src` today. *shrug*).

+Rouslan: Can you help us understand how Payment Handlers ought to be integrating with CSP? Who's responsible for the requests?
I think Security_Impact-Stable is wrong. This bug doesn’t affect M67 but affects M68
Project Member

Comment 7 by sheriffbot@chromium.org, Jul 14

rouslan: Uh oh! This issue still open and hasn't been updated in the last 14 days. This is a serious vulnerability, and we want to ensure that there's progress. Could you please leave an update with the current status and any potential blockers?

If you're not the right owner for this issue, could you please remove yourself as soon as possible or help us find the right one?

If the issue is fixed or you can't reproduce it, please close the bug. If you've started working on a fix, please set the status to Started.

Thanks for your time! To disable nags, add the Disable-Nags label.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Cc: ma...@chromium.org rouslan@chromium.org
Labels: -Security_Impact-Stable -Security_Severity-Medium Security_Severity-Low Security_Impact-Beta
Owner: gogerald@chromium.org
Medium -> Low as a "partial CSP bypass" per https://chromium.googlesource.com/chromium/src/+/master/docs/security/severity-guidelines.md
What do you mean by partial CSP bypass? And what do you consider a full CSP bypass?
Labels: Needs-Feedback
Hi, I do not see the necessity of integrating CSP for payment method manifest and JIT here. Could you provide details of the risk not applying it?

Payment method manifest url is resolved through payment method name plus its header (Link: </pay/payment-manifest.json>; rel="payment-method-manifest").

For JIT:
Web app manifest url is from the payment method manifest. And we are requiring payment method and web app manifest url must from the same site (top level domain). Web app manifest url, service work url and registration scope must from the same origin.
Hmm, maybe if you never allow payment app installation without `Link: </pay/payment-manifest.json>; rel="payment-method-manifest"` response header than it seems okay (I thought <link> tag also works in non-JIT cases, but it doesn't).

But security checks for JIT seems weak. I will report another bug when I confirm this.
Can you cc me on that bug? I have no permission to access it.

JIT PH do always require <link> tag for the payment method manifest.

Non-JIT PH (already installed PH) do not check payment method manifest if it is from the same origin of the payment method for efficiency.
Sorry, I don't have permission to CC you... I can only report bugs or write comments...
But CSP issues seems not risky, indeed.
Status: WontFix (was: Assigned)
Okay, thanks, I will wait for somebody else to cc me on that bug.
Close this bug for now.
Project Member

Comment 16 by sheriffbot@chromium.org, Oct 23

Labels: -Restrict-View-SecurityTeam allpublic
This bug has been closed for more than 14 weeks. Removing security view restrictions.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot

Sign in to add a comment