| パッケージ | 影響を受けるバージョン | 修正済みバージョン |
|---|---|---|
| symfony/symfony | ≥ 6.0.0, < 6.4.40≥ 7.0.0, < 7.4.12≥ 8.0.0, < 8.0.12< 5.4.52 | 6.4.407.4.128.0.125.4.52 |
| symfony/yaml | ≥ 6.0.0, < 6.4.40≥ 7.0.0, < 7.4.12≥ 8.0.0, < 8.0.12< 5.4.52 | 6.4.407.4.128.0.125.4.52 |
| symfony | ≥ 6.0.0, < 6.4.40≥ 7.0.0, < 7.4.12≥ 8.0.0, < 8.0.12< 5.4.52 | 6.4.407.4.128.0.125.4.52 |
Symfony\Component\Yaml\Parser is the entry point for parsing YAML strings into PHP values via Yaml::parse(). When the parser is exposed to attacker-controlled input, deeply nested mappings or sequences cause both the block-level (Parser::parseBlock()) and inline (Inline::parseSequence() / Inline::parseMapping()) parsers to recurse without a depth limit. A crafted document exhausts the PHP stack and crashes the worker.
The Parser now tracks recursion depth in a shared ParserState object across both block-level and inline parsing, with a default limit of 128. The limit is configurable via a new $maxNestingLevel argument on Parser::__construct(), Yaml::parse() and Yaml::parseFile().
The patch for this issue is available here for branch 5.4.
Symfony would like to thank Pietro Tirenna (Shielder) for reporting the issue and Nicolas Grekas for fixing it.
これらの製品をお使いですか?サイトをスキャンして、脆弱なバージョンが公開されていないか確認しましょう。
無料でサイトをスキャン