diff options
author | tb <> | 2021-02-24 17:59:05 +0000 |
---|---|---|
committer | tb <> | 2021-02-24 17:59:05 +0000 |
commit | 3055c9422506884a72601500fcfd923343060dee (patch) | |
tree | 6a82977031792901b175e88b3195d0e2b65a9c14 /src/lib/libc/stdlib/malloc.3 | |
parent | 6487e268876a41e84c6d6a028a6bf491155f03ba (diff) | |
download | openbsd-3055c9422506884a72601500fcfd923343060dee.tar.gz openbsd-3055c9422506884a72601500fcfd923343060dee.tar.bz2 openbsd-3055c9422506884a72601500fcfd923343060dee.zip |
Make the new validator check for EXFLAG_CRITICAL
As should be obvious from the name and the comment in x509_vfy.h
int last_untrusted; /* index of last untrusted cert */
last_untrusted actually counts the number of untrusted certs at the
bottom of the chain.
Unfortunately, an earlier fix introducing x509_verify_set_xsc_chain()
assumed that last_untrusted actually meant the index of the last
untrusted cert in the chain, resulting in an off-by-one, which in turn
led to x509_vfy_check_chain_extension() skipping the check for the
EXFLAG_CRITICAL flag.
A second bug in x509_verify_set_xsc_chain() assumed that it is always
called with a trusted root, which is not necessarily the case anymore.
Address this with a temporary fix which will have to be revisited once
we will allow chains with more than one trusted cert.
Reported with a test case by tobhe.
ok jsing tobhe
Diffstat (limited to 'src/lib/libc/stdlib/malloc.3')
0 files changed, 0 insertions, 0 deletions