Skip to content

Commit 7650cb8

Browse files
committed
X.509: Handle midnight alternative notation in GeneralizedTime
The ASN.1 GeneralizedTime object carries an ISO 8601 format date and time. The time is permitted to show midnight as 00:00 or 24:00 (the latter being equivalent of 00:00 of the following day). The permitted value is checked in x509_decode_time() but the actual handling is left to mktime64(). Without this patch, certain X.509 certificates will be rejected and could lead to an unbootable kernel. Note that with this patch we also permit any 24:mm:ss time and extend this to UTCTime, which whilst not strictly correct don't permit much leeway in fiddling date strings. Reported-by: Rudolf Polzer <[email protected]> Signed-off-by: David Howells <[email protected]> Acked-by: Arnd Bergmann <[email protected]> cc: David Woodhouse <[email protected]> cc: John Stultz <[email protected]>
1 parent da02559 commit 7650cb8

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

Diff for: crypto/asymmetric_keys/x509_cert_parser.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -525,7 +525,7 @@ int x509_decode_time(time64_t *_t, size_t hdrlen,
525525
}
526526

527527
if (day < 1 || day > mon_len ||
528-
hour > 23 ||
528+
hour > 24 || /* ISO 8601 permits 24:00:00 as midnight tomorrow */
529529
min > 59 ||
530530
sec > 60) /* ISO 8601 permits leap seconds [X.680 46.3] */
531531
goto invalid_time;

0 commit comments

Comments
 (0)