7.5high

CVE-2018-18385

Asciidoctor Infinite Loop vulnerability

Also known as GHSA-qc9p-mjxm-j2wj

Published 8 y ago · modified 4 mo ago · JSON

CVSS
7.5
v3.0 · NVD
CISA KEV
No
not known exploited
EPSS
2.3%
percentile 83%
Public exploits
0
none known

Summary

Asciidoctor in versions < 1.5.8 allows remote attackers to cause a denial of service (infinite loop). The loop was caused by the fact that Parser.next_block was not exhausting all the lines in the reader as the while loop expected it would. This was happening because the regular expression that detects any list was not agreeing with the regular expression that detects a specific list type. So the line kept getting pushed back onto the reader, hence causing the loop.

Exploit prediction (EPSS)

2.25% probability of exploitation in the next 30 days, higher than 83% of all scored CVEs.

CVSS scores

Assigned byVersionScoreVector
NVD3.07.5CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
NVD2.05.0AV:N/AC:L/Au:N/C:N/I:N/A:P
GitHub3.07.5CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

Affected packages

EcosystemPackageAffectedFixed in
rubygemsasciidoctor
<1.5.8
1.5.8

Classification

Weakness
  • CWE-835 Loop with Unreachable Exit Condition

References

  • github.com /asciidoctor/asciidoctor/issues/2888 · x_refsource_MISC, x_transferred
  • nvd.nist.gov /vuln/detail/CVE-2018-18385 · advisory
  • github.com /asciidoctor/asciidoctor · package
  • github.com /rubysec/ruby-advisory-db/blob/master/gems/asciidoctor/CVE-2018-18385.yml · web

Sources

vulnwire keeps one entry per vulnerability: the CVE id wins, then GHSA; records that alias each other are merged. Machine-readable: JSON.