Potentially anomalous path-building results
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 115
- Forks
- 34
- PR merge metrics
- No merged PRs in 30d
Description
Hi there! I'm opening this to help root-cause a handful of anomalous path-building results observed with certvalidator, which we found with x509-limbo.
As a disclaimer: many of these are likely to be non-issues from certvalidator's perspective, so please don't interpret this issue as a demand or expectation for everything on the linked results page to be fixed. X.509 validators have a huge range of behaviors in practice and many of the failures are either due to "pedantic" readings of RFC 5280 or explicitly unsupported features (e.g. Name Constraints, in certvalidator's case).
There are, however, some results for which certvalidator is an outlier or otherwise should probably consider some changes. A non-exhaustive sampling:
- rfc5280::aki::critical-aki: all other implementations (except Go, which is fixing their behavior) under test reject critical AKIs;
certvalidatoraccepts it; pathological::nc-dos-1andpathological::nc-dos-3: implementations typically establish a NC comparison budget to prevent quadratic blowup, butcertvalidatorappears to churn through them instead (taking over 30 seconds on my machine). I haven't fully root-caused this one, but was surprised sincecertvalidatorotherwise appears to reject any critical NC extensions);webpki::san::wildcard-embedded-leftmost-san: implementations should reject SAN patterns with non-leftmost wildcards (e.g.ba*.example.com), per both RFC 6125 and CABF;cve::cve-2024-0567: this is a test for a chain-building failure in an older version of GnuTLS, whichcertvalidatoralso fails to construct a chain for here. The error here is pretty strange, sincecertvalidatorappears to handle SANs in other contexts.
There are others as well, but these ones stood out as initial candidates for fixes.
Please let me know if there's any other information I can provide, or if I can help in any way! I'm not super familiar with certvalidator's internals, but I may be able to help resolve some of these with some guidance on the codebase 🙂
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the linked x509-limbo cases against certvalidator, especially critical AKI, pathological name-constraint, wildcard SAN, and CVE-2024-0567 results. The issue names no files or tests, so first determine which behaviors are intended, trace each discrepancy to the relevant certificate-path validation code, and document or test the agreed fixes.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- cryptography, security
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100