From 1d1fdfeb13cfac5fa48f1fbbe0e05eecdd6f76a1 Mon Sep 17 00:00:00 2001 From: Alan Griffiths Date: Mon, 20 Jan 2020 16:13:21 +0000 Subject: [PATCH] Test for CVE-2018-20573 --- test/parser_test.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/test/parser_test.cpp b/test/parser_test.cpp index ecd1b23..686fb46 100644 --- a/test/parser_test.cpp +++ b/test/parser_test.cpp @@ -27,3 +27,14 @@ TEST(ParserTest, CVE_2017_5950) { NiceMock handler; EXPECT_THROW(parser.HandleNextDocument(handler), YAML::ParserException); } + +TEST(ParserTest, CVE_2018_20573) { + std::string excessive_recursion; + for (auto i = 0; i != 20535; ++i) + excessive_recursion.push_back('{'); + std::istringstream input{excessive_recursion}; + Parser parser{input}; + + NiceMock handler; + EXPECT_THROW(parser.HandleNextDocument(handler), YAML::ParserException); +}