|
| 1 | +--- |
| 2 | +layout: advisory |
| 3 | +title: 'CVE-2024-43380 (fugit): fugit parse and parse_nat stall on lengthy input' |
| 4 | +comments: false |
| 5 | +categories: |
| 6 | +- fugit |
| 7 | +advisory: |
| 8 | + gem: fugit |
| 9 | + cve: 2024-43380 |
| 10 | + ghsa: 2m96-52r3-2f3g |
| 11 | + url: https://github.com/floraison/fugit/security/advisories/GHSA-2m96-52r3-2f3g |
| 12 | + title: fugit parse and parse_nat stall on lengthy input |
| 13 | + date: 2024-08-19 |
| 14 | + description: | |
| 15 | + ### Impact |
| 16 | +
|
| 17 | + The fugit "natural" parser, that turns "every wednesday at 5pm" into |
| 18 | + "0 17 * * 3", accepted any length of input and went on attempting to |
| 19 | + parse it, not returning promptly, as expected. The parse call could |
| 20 | + hold the thread with no end in sight. |
| 21 | +
|
| 22 | + Fugit dependents that do not check (user) input length for |
| 23 | + plausability are impacted. |
| 24 | +
|
| 25 | + ### Patches |
| 26 | +
|
| 27 | + Problem was reported in #104 and the fix was released in |
| 28 | + [fugit 1.11.1](https://rubygems.org/gems/fugit/versions/1.11.1) |
| 29 | +
|
| 30 | + ### Workarounds |
| 31 | +
|
| 32 | + By making sure that `Fugit.parse(s)`, `Fugit.do_parse(s)`, |
| 33 | + `Fugit.parse_nat(s)`, `Fugit.do_parse_nat(s)`, `Fugit::Nat.parse(s)`, |
| 34 | + and `Fugit::Nat.do_parse(s)` are not fed strings too long. |
| 35 | + 1000 chars feels ok, while 10_000 chars makes it stall. |
| 36 | +
|
| 37 | + In fewer words, making sure those fugit methods are not fed |
| 38 | + unvetted input strings. |
| 39 | + cvss_v3: 5.3 |
| 40 | + patched_versions: |
| 41 | + - ">= 1.11.1" |
| 42 | + related: |
| 43 | + url: |
| 44 | + - https://nvd.nist.gov/vuln/detail/CVE-2024-43380 |
| 45 | + - https://github.com/floraison/fugit/security/advisories/GHSA-2m96-52r3-2f3g |
| 46 | + - https://github.com/floraison/fugit/issues/104 |
| 47 | + - https://github.com/floraison/fugit/commit/ad2c1c9c737213d585fff0b51c927d178b2c05a5 |
| 48 | + - https://github.com/advisories/GHSA-2m96-52r3-2f3g |
| 49 | +--- |
0 commit comments