Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessDeliver crafted .ics to victim
-
ExploitVictim's app parses trailing-backslash escape
-
ExecutionOOB read past heap buffer in decoder
-
ImpactApplication crash or heap memory leak
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Bounds checking, read limits
MITRE ATT&CK
1 technique across 1 tactic: Collection The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires the application to feed attacker-controlled iCalendar text through the escaped-string decoding path (icalvalue_decode_ical_string, or icallangbind_property_eval_string) where a value ends in a trailing backslash (or newline) - e.g. a crafted .ics file, meeting invite, or subscribed calendar feed. Limiting factors: the CVSS vector is AV:L with UI:P, so a local victim must open or process the malicious calendar data; there is no remote-unauthenticated path in default use, and the primary outcome is a crash (DoS) with only limited adjacent heap disclosure rather than code execution. Any libical version at or below 4.0.6 that parses untrusted calendar input is in scope. |
| Impact | Signals point to a moderate, not urgent, priority. The CVSS 4.0 base score is 6.9 (MEDIUM) and the vector (AV:L/AC:L/AT:N/PR:N/UI:P/VC:L/VI:N/VA:H) shows the dominant impact is availability (VA:H, an application crash) with only low confidentiality loss (VC:L, limited adjacent heap leakage) and no integrity impact - consistent with the CWE-125 out-of-bounds READ classification (there is no memory corruption/write primitive, so RCE is not indicated). Exploitation is gated by a local vector and passive user interaction (UI:P): a victim must process attacker-supplied iCalendar data, which lowers real-world risk versus a remote-unauthenticated flaw. No EPSS score, no CISA KEV listing, and no explicit POC flag were provided in the input, so exploitation probability cannot be quantified and there is no public exploit identified at time of analysis - though VulnCheck reported it and a detailed technical writeup exists on hackmd, which raises the likelihood that working reproduction steps are publicly derivable. Because no SSVC/EPSS/KEV data is present, risk is inferred from the CVSS vector alone: a realistic DoS plus minor info-leak in a widely embedded parsing library. Patch promptly where libical parses untrusted calendar input, but this is not a drop-everything critical issue. |
| Exploit ScenarioDerived | An attacker sends a victim a malicious .ics calendar invitation or hosts a calendar feed containing escaped iCalendar text whose value ends in a trailing backslash. When the victim's libical-based client parses it, icalvalue_decode_ical_string() reads past the string terminator, crashing the application or leaking adjacent heap bytes into the decoded output. No weaponized public exploit is confirmed, but a technical writeup describing the bug exists. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 15, 2026
Decoding crafted iCalendar text that ends in a trailing backslash drives a heap-based out-of-bounds read in libical 4.0.6 and earlier, allowing the attacker to crash the consuming application or expose a small amount of adjacent heap memory. The assessed vector is CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:H, meaning a victim must locally open or process the malicious calendar data (for example a crafted .ics file, meeting invite, or subscribed feed) and the dominant outcome is a crash / denial of service, with only limited confidentiality loss rather than code execution; the PR:N component indicates no attacker credentials are needed on the affected host. No public exploit identified at time of analysis, the flaw is not listed in CISA KEV, and an upstream fix exists via the referenced pull request and commit.
RemediationAI
Upstream fix available (PR/commit); released patched version not independently confirmed - integrate the change from https://github.com/libical/libical/pull/1455 (commit d753885ce2de7c105d6b8c405aa7aee1d98ad8de), which adds a check that stops decoding when the character after a backslash is the NUL terminator and also fixes the newline loop in icallangbind_property_eval_string_r(), and rebuild/relink any application that statically or dynamically links libical; update to the first tagged libical release that contains this commit once it is published. If patching cannot be done immediately, reduce exposure by not passing untrusted calendar data into the affected decoding paths - validate and normalize inbound iCalendar text before parsing so no value ends in a bare backslash or trailing newline (this is a parser-input sanitation step and will not catch every escaped-string edge case), or route untrusted .ics files, invites, and subscribed feeds through an isolated parser process or sandbox so that an out-of-bounds read only terminates that worker rather than the primary application (this contains the availability impact but does not stop the out-of-bounds read itself). Because the assessed impact is a crash with only limited adjacent heap disclosure, prioritize the upgrade over workarounds, and treat repeated parse failures from untrusted calendar sources as a potential trigger for this bug. Consult the vendor advisory at https://www.vulncheck.com/advisories/libical-through-4.0.6-heap-out-of-bounds-read-via-icalvalue-decode-ical-string and the fix references above for release details.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
libical is a C library that parses and generates iCalendar (RFC 5545) data, and the defect is a classic heap out-of-bounds read (CWE-125) in icalvalue_decode_ical_string() in src/libical/icalvalue.c. The decoder walks escaped iCalendar text character by character; when the input ends with a lone backslash escape, the loop advances to the escape character and then continues past the string terminator because the escape sequence it expects never materializes, reading bytes beyond the end of the heap allocation. The upstream fix adds a guard that checks whether the character following the backslash is the NUL terminator and, if so, stops before the terminator; the same pull request also corrects the newline-handling loop in icallangbind_property_eval_string_r() in src/libical/icallangbind_p.c, which had a comparable one-past-the-end access for values ending in a newline. The CPE entry cpe:2.3:a:libical:libical:*:*:*:*:*:*:*:* indicates the entire libical code line up to and including 4.0.6 is affected, and the regression tests added upstream explicitly cover both a value ending in an escape character and a value ending in a newline.
Know when Libical gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:L/VI:N/VA:H/SC:N/SI:N/SA:N
Victim must process an attacker-supplied calendar (AV:L, UI:R); no auth needed (PR:N); OOB read yields application crash (A:H) and minor heap leak (C:L), no integrity impact.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
libical through 4.0.6 contains a heap-based out-of-bounds read in icalvalue_decode_ical_string() in src/libical/icalvalue.c when decoding input ending in a backslash. Attackers can supply escaped iCalendar text with a trailing backslash, causing the loop to read past the terminator and crash the application or leak adjacent heap memory.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
A buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
libical allows remote attackers to cause a denial of service (use-after-free) and possibly read heap memory via a crafte
The icaltime_from_string function in libical 0.47 and 1.0 allows remote attackers to cause a denial of service (out-of-b
The parser_get_next_char function in libical 0.47 and 1.0 allows remote attackers to cause a denial of service (out-of-b
Parsing attacker-controlled iCalendar data containing a parameterized property in libical 4.0.6 can terminate the consum
The icalparser_parse_string function in libical 0.47 and 1.0 allows remote attackers to cause a denial of service (out-o
The icalproperty_new_clone function in libical 0.47 and 1.0 allows remote attackers to cause a denial of service (use-af
libical 1.0 allows remote attackers to cause a denial of service (use-after-free) via a crafted ics file. Rated medium s
EUVD-2026-102524
GHSA-qvfg-9jj8-868q
NVD
CVE.org
EPSS
Exploit-DB