From 7e386534920a81ccc31807279920a3bf874d4395 Mon Sep 17 00:00:00 2001 From: Timothy Flynn Date: Sun, 24 Mar 2024 08:59:00 -0400 Subject: [PATCH] AK: Reject invalid Base64 encoded string lengths --- AK/Base64.cpp | 3 +++ Tests/AK/TestBase64.cpp | 5 +++++ 2 files changed, 8 insertions(+) diff --git a/AK/Base64.cpp b/AK/Base64.cpp index 058fd808a69..a8fa7f8c8b3 100644 --- a/AK/Base64.cpp +++ b/AK/Base64.cpp @@ -34,6 +34,9 @@ static ErrorOr decode_base64_impl(StringView input, ReadonlySpan ErrorOr { if (offset >= input.length()) return 0; diff --git a/Tests/AK/TestBase64.cpp b/Tests/AK/TestBase64.cpp index fb410113feb..a04a0c8dd5b 100644 --- a/Tests/AK/TestBase64.cpp +++ b/Tests/AK/TestBase64.cpp @@ -40,6 +40,11 @@ TEST_CASE(test_decode_invalid) EXPECT(decode_base64("aGVsbG8_d29ybGQ="sv).is_error()); EXPECT(decode_base64url("aGVsbG8/d29ybGQ="sv).is_error()); + + EXPECT(decode_base64("Y"sv).is_error()); + EXPECT(decode_base64("YQ"sv).is_error()); + EXPECT(decode_base64("YQ="sv).is_error()); + EXPECT(decode_base64("PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMC42MDUiIGhlaWdodD0iMTUuNTU1Ij48cGF0aCBmaWxsPSIjODg5IiBkPSJtMi44MjggMTUuNTU1IDcuNzc3LTcuNzc5TDIuODI4IDAgMCAyLjgyOGw0Ljk0OSA0Ljk0OEwwIDEyLjcyN2wyLjgyOCAyLjgyOHoiLz48L3N2Zz4"sv).is_error()); } TEST_CASE(test_decode_only_padding)