Issue metadata
Sign in to add a comment
|
Security: Chrome in Ubuntu accepts a certicate whose validity is "Wednesday, August 1, 2018 at 6:30:26 PM to Wednesday, August 1, 2012 at 6:30:26 PM"
Reported by
chen...@stu.xidian.edu.cn,
Feb 14 2017
|
||||||||||||||||||||||
Issue descriptionVULNERABILITY DETAILS Generally, the validity of a certificate is like "Wednesday, August 1, 2012 at 6:30:26 PM - Wednesday, August 1, 2018". However, when we reverse the "notBefore" and "notAfter", Chrome in Ubuntu accepts it without warning. VERSION Chrome Version: [54.0.2840.59] + [stable] Operating System: [Ubuntu v1604-LTS x64] REPRODUCTION CASE 1. To click the menu "settings" of Chrome. 2. To click "show advanced settings ...". 3. To click "HTTPS/SSL: Manage certificates ..." 4. To click the tab "Authorities" and to click "import". To select "ca.pem" which is attached to this report and to select "Trust this certificate for identifying websites". 5. To click the tab "Your Certificates" and to click "import...". To select "31.p12" which is also attached to this report and input the password "123654". 6. Chrome imports "31.p12" without warning and Chrome shows that "This certificate has been verified for the following useages: ...". 7. To view the imported "31.p12" and the tab "General" shows that the certificate is "Issued On Wednesday, August 1, 2018 at 6:30:26 PM" and "Expires On Wednesday, August 1, 2012 at 6:30:26 PM".
,
Feb 15 2017
Certificate validation is an important way to guarantee the security of communications on the Internet. Flaws in in certificate validation results in insecurity of communications. We found in our experiments that Chrome accepts this certificate with a specially invalid date range. In our opinion, this is a latent security problem. Therefore, we reported it. As for the certificate chain, it is a part of our research. According to our plan, we will carry out related experiments in April or May. If we find useful bugs in the related experiments, we will report them to you. Thank you!
,
Feb 21 2017
On Windows, certificates are managed by the system; Chrome doesn't "see" what you import at the time of import. If a chain were to build to the invalid root certificate, I'd expect the chain to be deemed invalid. A finding otherwise would be surprising and represent a security bug. On Linux, Chrome maintains its own certificate manager; the certificate is loaded via CertificatesHandler::ImportServerFileRead, which presumably could do more validation on the imported certificate if it made sense. Again though, this only possibly represents a security bug if Chrome accepts (for the purposes of authenticating a HTTPS server) a certificate chain containing such an invalid certificate.
,
Feb 23 2017
elawrence@, what should we do with this bug for now, since we don't have any actionable cert chains?
,
Feb 23 2017
I'm fairly certain this is WontFix as described, but I do want to make sure I properly understand the report. Why WontFix: - The situation described is related to importation, not validation. If this was related to validation, it would need to be triaged, but based on the evidence so far, there's no report of attempts to validate with it. To expand on that: We don't verify certificates when importing. This is because to import a certificate, you need access to the machine, and https://www.chromium.org/Home/chromium-security/security-faq#TOC-Why-aren-t-physically-local-attacks-in-Chrome-s-threat-model- generally captures why such 'attacks' aren't considered attacks. To expand on why we don't validate when importing: It's not necessary, and it has a higher false positive rate but offers no tangible security benefit. This is because regardless of whether you verify at import, you will always need to verify at time of use. This is also because to import a client certificate, Chrome doesn't need to verify at import because it will _never_ verify the certificate, because its use will only be in shipping an opaque set of bytes to a server; it's the servers responsibility to validate. Further, we don't verify on the client because we don't know how the server will validate - it could be more relaxed (for example, accepting negative modulus RSA keys, such as were used in a whole host of Estonian national ID cards) or it could be more strict (e.g. checking revocation information dynamically on the server, which Chrome does not support on the client) If you're able to demonstrate any attack in which such a certificate is used to authenticate a website, we'd be very happy to revisit. However, as described, this is just about adding strictness when importing, and that offers no security benefits, and questionable usability benefits.
,
Feb 25 2017
No response, closing as WontFix.
,
Jun 4 2017
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 |
|||||||||||||||||||||||
Comment 1 by elawrence@chromium.org
, Feb 14 2017Labels: Needs-Feedback