☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
CPANSec logo [ WEBSITE ] [ VENDOR STATS ]
CVSS: 7.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N 🐛 CWE-125
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2026-19082

CVE-2026-19082 — Imager versions from 0.45_02 before 1.034 for Perl may expose adjacent heap bytes via strlen() over-read from zero-count ASCII EXIF entries in copy_string_tags
📅 PUBLISHED: 2026-08-07 00:00 UTC 🔄 UPDATED: 2026-10-02 19:31 UTC
[ OFFICIAL PATCH DEPLOYED ↓ ] FIX: LIKELY — 2 independent sources confirm fix
[ DEFENSE PATCH ↓ ]
💣 PoC: Public
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.51%
👁️
0.51% probability
12.7× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1190
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
Country: Global License: Open Source
Patch available — upgrade to latest release
CVSS VECTOR BREAKDOWN 7.5
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: N Privileges Required None
UI: N User Interaction None
S: U Scope Unchanged
C: H Confidentiality High
I: N Integrity None
A: N Availability None
7.5
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2026-19082 is a heap buffer over-read vulnerability in the Imager Perl library, affecting versions from 0.45_02 through 1.033. The flaw resides in the copy_string_tags() function, which mishandles zero-count ASCII EXIF entries, leading to an out-of-bounds read of adjacent heap memory via an unintended strlen() call. Any application using Imager->read() on attacker-supplied images—including JPEG and WebP files—may leak adjacent heap bytes into EXIF tag values returned to the caller. The vulnerability is patched in Imager 1.034. At the time of writing, no public exploit code exists and the CVE has not been added to CISA's Known Exploited Vulnerabilities catalog. However, the informational disclosure vector makes this relevant to any Perl-based web application, image processing pipeline, or forensic tooling that processes untrusted image files.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Technical Analysis

The vulnerability manifests in Imager's EXIF parsing path, specifically within the copy_string_tags() function. To understand the flaw, we must examine how Imager processes ASCII-typed EXIF entries.

EXIF tags containing ASCII data are stored with an associated size field (entry->size) that represents the total allocated byte count, including the terminating NUL character. In normal operation, copy_string_tags() strips the trailing NUL by computing the effective string length as entry->size - 1. This arithmetic is correct for well-formed entries where size >= 1.

The flaw triggers when an attacker crafts an EXIF entry with a size of zero (entry->size = 0). This zero-count ASCII entry causes the expression entry->size - 1 to evaluate to -1 (underflow on an unsigned integer, or explicit -1 on a signed type). This derived length value is then passed to i_tags_add(). Inside this function, a length of -1 is interpreted as a sentinel indicating that the string's length should be determined by calling strlen() on the pointer to the EXIF entry data.

The strlen() call then scans forward from the entry's data pointer until it encounters a NUL byte in memory. Since the zero-count entry contains no actual data, this scan travels past the intended boundary of the EXIF entry and into adjacent heap memory, reading bytes until a zero byte is found. The resulting string—containing whatever heap bytes were encountered—is copied into the tag structure and returned to the caller as an exif_* tag value.

The attack surface is significant because this code path is reachable through the high-level Imager->read() API, which is the standard entry point for loading images. When processing a JPEG file, the EXIF parsing is triggered via im_decode_exif(). The same vulnerable code exists in the separate Imager::File::WEBP distribution, meaning WebP files are equally affected. The fix requires upgrading Imager itself, which addresses both paths since the vulnerable code resides in the core library.

From a technical standpoint, the vulnerability is classified as CWE-125 (Out-of-bounds Read). The impact is limited to information disclosure—no memory corruption or code execution occurs. However, in a multi-tenant environment or a service that processes images from untrusted users, the leaked heap bytes could contain sensitive data from other processed objects, session tokens, cryptographic keys, or other application state.

Exploitation Scenarios

Attack Chain: Exploiting CVE-2026-19082 in an Image Processing Service

Step 1 — Reconnaissance and Target Identification:

An attacker first identifies a target application that uses Perl with the Imager library. Common targets include:

  • Web applications with image upload and thumbnail generation features
  • Email gateways that scan attachments
  • Document management systems that extract metadata
  • Security appliances that parse image files for content filtering

The attacker fingerprints the target by uploading a benign JPEG and examining the response for exif_* tags in the output, confirming Imager is in use. Version detection may be possible through error messages, behavior differences, or timing side-channels.

Step 2 — Crafting the Malicious Image:

The attacker creates a JPEG file containing a zero-count ASCII EXIF entry. The EXIF structure must include an IFD (Image File Directory) with an ASCII-type entry where the size field is set to 0. Tools like exiftool with custom binary manipulation, or direct hex editing of the EXIF segment, can produce such a file.

The key byte placements are:

EXIF IFD entry structure:
  Offset 0-1:  Tag ID (e.g., 0x010E for ImageDescription)
  Offset 2-3:  Type (2 = ASCII)
  Offset 4-7:  Count/Size = 0x00000000
  Offset 8-11: Value offset (unused for zero count)

The attacker strategically places this malformed entry adjacent to heap regions likely to contain sensitive data, although the exact layout is unpredictable.

Step 3 — Triggering the Vulnerability:

The attacker uploads or submits the crafted JPEG to the target. The server's image processing pipeline calls Imager->read() on the file. The parsing flow proceeds:

Imager->read() → im_decode_exif() → copy_string_tags() → i_tags_add(entry, -1) → strlen(entry_data) → heap over-read

The strlen() call reads bytes from the heap until a NUL is encountered. The number of bytes leaked depends on heap layout and the distance to the next zero byte. In a busy process, this could be dozens or hundreds of bytes.

Step 4 — Exfiltration of Leaked Data:

The application typically stores EXIF tags in a metadata structure and may:

  • Return them in a JSON API response
  • Display them on a details page
  • Store them in a database that the attacker can query later
  • Include them in logs accessible to the attacker

The attacker retrieves the response and extracts the exif_* tag values, which now contain non-empty garbage data instead of an empty string. By submitting multiple crafted images, the attacker can sample different heap regions over time, potentially harvesting sensitive information such as:

  • Session tokens from other users' requests
  • API keys or authentication material
  • Fragments of other uploaded files
  • Cryptographic material (partial RSA keys, AES key schedules)
  • Internal IP addresses or hostnames from network buffers

Step 5 — Post-Exploitation:

The leaked data enables further attacks. For example, a leaked session token allows account impersonation; a leaked internal hostname aids lateral movement within the network. The attacker may also use the vulnerability for heap layout fingerprinting to support other exploitation efforts targeting different components in the stack.

Impact Assessment

The vulnerability carries a CVSS score of N/A, indicating that no official score has been assigned. Based on the technical characteristics, a reasonable assessment would place this in the Medium range (4.0-6.9), given that it requires local file processing (no direct network trigger), only results in information disclosure, and does not allow code execution.

Confidentiality Impact: The core impact is confidentiality loss. The heap over-read can expose arbitrary adjacent heap bytes to the attacker. In an application processing multiple users' images in a shared process, this creates an information leak between security contexts.

Integrity Impact: None directly. The vulnerability does not allow modification of data.

Availability Impact: None directly. However, an attacker could potentially craft a file that causes a segmentation fault if the strlen() scan crosses into an unmapped memory page, resulting in a denial of service.

Affected Systems and Blast Radius:

  • All Perl applications using Imager versions 0.45_02 through 1.033
  • The Imager::File::WEBP distribution (fix requires Imager upgrade)
  • Development environments, CI/CD pipelines, and production servers that process images
  • Web application frameworks built on Catalyst, Mojolicious, or Dancer that incorporate Imager for image handling

Business Impact:

  • Exposure of sensitive application data in shared hosting or multi-tenant environments
  • Compliance implications if personal data is leaked (GDPR, HIPAA, PCI-DSS)
  • Reputational damage from a data breach attributed to the application
  • Potential for downstream attacks using leaked credentials

Detection Guidance

Sigma Rule

title: Imager EXIF Zero-Count ASCII Heap Over-Read Attempt
id: 3f7a9c2e-8d4b-4e1f-a6c3-5b2d9e4f1a78
status: experimental
description: Detects anomalous EXIF tag data patterns indicative of CVE-2026-19082 exploitation attempts against Imager-based Perl applications.
references:
    - https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-19082
tags:
    - attack.t1190
    - cve.2026.19082
    - cwe.125
logsource:
    category: application
    product: perl
    service: imager
detection:
    selection_exif_size_zero:
        # HTTP request body or uploaded file containing EXIF entries with zero count for ASCII type
        # This is a proxy for the upload containing the malformed EXIF structure
        payload|contains|all:
            - 'Exif'
            - '\x00\x02\x00\x00\x00\x00'  # Type=ASCII, Count=0 (raw binary match)
    selection_unexpected_tag:
        # Response contains exif_* tag with non-empty value where empty expected
        response_body|contains: 'exif_imageDescription'
    condition: selection_exif_size_zero or selection_unexpected_tag
    level: high
    falsepositives:
        - Legitimate EXIF entries with unusual formatting from rare camera software

YARA Rule

rule CVE_2026_19082_Imager_EXIF_Overread
{
    meta:
        author = "Valters IT Security Research"
        description = "Detects JPEG/WebP files with zero-count ASCII EXIF entries targeting Imager CVE-2026-19082"
        cve = "CVE-2026-19082"
        date = "2026-01-15"
        severity = "medium"
        reference = "https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-19082"

    strings:
        $exif_marker = { FF E1 }  // APP1 marker for EXIF
        $exif_header = "Exif\0\0"
        $ascii_zero = { 02 00 00 00 00 00 }  // Type=ASCII(2), Count=0 (little-endian)
        $ascii_zero_be = { 00 02 00 00 00 00 }  // Type=ASCII(2), Count=0 (big-endian/network order)

    condition:
        any of them and (
            ($exif_marker at 0 and $exif_header in (2..6)) or
            $ascii_zero or $ascii_zero_be
        )
}

Suricata IDS Rule

alert http any any -> any any (
    msg:"CVE-2026-19082 Imager EXIF Zero-Count ASCII Heap Over-Read Attempt";
    flow:to_server,established;
    content:"Exif"; http_client_body; nocase;
    pcre:"/Exif\x00\x00.{0,1024}\x02\x00\x00\x00\x00\x00/";
    sid:10019082;
    rev:1;
    metadata:attack_target Web_Server, created_at 2026_01_15, cve CVE_2026_19082, deployment Perimeter, signature_severity Major, tag Exploitation, tag Heap_Overread;
    reference:cve,2026-19082;
    classtype:attempted-user;
)

Elastic Detection

// Detects application log entries or web server logs showing
// anomalous EXIF tag data associated with Imager processing

sequence by source.ip with maxspan=1m
  [ network where event.category == "network" and event.type == "connection" and
    destination.port == 80 or destination.port == 443 ]
  [ http where event.category == "http" and http.request.method == "POST" and
    // JPEG/WebP upload or image processing request
    (http.request.body.content contains "Exif" or
     http.request.body.content contains "FFD8FFE1" or
     http.request.body.content contains "RIFF") ]
  [ http where event.category == "http" and http.response.body.content matches
    "exif_[a-zA-Z0-9_]+\\s*[:=]\\s*[\\x20-\\x7E]{8,}" ]

Splunk SPL Query

index=web OR index=app
| search "Imager" OR "im_decode_exif" OR "exif_"
| rex field=_raw "exif_(?<tag_name>[a-zA-Z0-9_]+)\s*[:=]\s*(?<value>.*)"
| where len(value) > 0
  // Zero-count entries should produce empty strings; non-empty indicates potential leak
| eval cvss_score = 0
| stats count by src_ip, tag_name, value, _time
| sort -_time
| head 100

Wazuh OSSEC Rule

<group name="imager,cve_2026_19082,">
    <rule id="190821" level="12">
        <if_sid>is_upload</if_sid>
        <field name="file.type_in">JPEG</field>
        <match>EXIF|Exif</match>
        <description>Potential CVE-2026-19082 exploitation: crafted JPEG with malformed EXIF data uploaded</description>
        <group>imager_vuln,</group>
        <mitre>
            <id>T1190</id>
        </mitre>
    </rule>

    <rule id="190822" level="10">
        <if_sid>190821</if_sid>
        <match>exif_</match>
        <description>Imager EXIF processing returned non-empty tag from zero-count entry - heap leak suspected</description>
        <group>imager_vuln,</group>
        <mitre>
            <id>T1190</id>
        </mitre>
    </rule>
</group>

Mitigation & Patch Guidance

Patch Confidence: 3/4 (LIKELY — 2 independent sources confirm fix)

The vendor has released a fix in Imager version 1.034. The NVD description and the CNA both confirm this patched version, providing independent confirmation.

1. Immediate Mitigations (Before Patching):

  • If possible, temporarily disable EXIF parsing by configuring Imager to ignore EXIF metadata during image reads. This can be done by overriding the read callback or using a wrapper that strips EXIF segments before passing the file to Imager->read().
  • Adjust application logic to validate EXIF tag sizes before processing: reject any image where an ASCII-type entry reports size zero.
  • In network-facing applications, add a file pre-filter that parses EXIF headers independently and rejects files with zero-count entries.
  • Run programs using Imager in a sandboxed or containerized environment where heap leaks have limited scope.

2. Patch/Upgrade Steps:

For Perl environments, upgrade Imager using the CPAN client:

cpanm Imager

or:

cpan Imager

Ensure the installed version is 1.034 or later:

perl -MImager -e 'print $Imager::VERSION, "\n"'

If using the Imager::File::WEBP distribution, upgrade it as well, though the security fix is delivered through the core Imager upgrade:

cpanm Imager::File::WEBP

After upgrading, rerun the application's test suite, with particular focus on image upload and EXIF metadata extraction functionality.

3. Long-Term Hardening:

  • Establish a process for monitoring CPAN security advisories for Imager and other image processing libraries.
  • Implement defense-in-depth by processing untrusted images in a separate, isolated microservice with restricted memory access and minimal privileges.
  • Use memory-safe alternatives where feasible, or add a validation layer that normalizes images (stripping EXIF entirely) before passing them to Imager.
  • Add automated dependency scanning to CI/CD pipelines to catch vulnerable versions before deployment.
  • Monitor application logs for the specific error patterns associated with this exploit attempt.

References

  1. NVD Entry for CVE-2026-19082 — https://nvd.nist.gov/vuln/detail/CVE-2026-19082 Official National Vulnerability Database record containing the CVE description, CWE classification, and patch references.

  2. Imager CPAN Distribution — https://metacpan.org/release/Imager Official CPAN page for the Imager distribution, where version 1.034 is available for download.

  3. Imager::File::WEBP CPAN Distribution — https://metacpan.org/release/Imager-File-WEBP Related distribution affected by the same underlying vulnerability; fixed by upgrading Imager.

  4. CPAN Security Advisory (CPANSec) — https://security.metacpan.org/ The CPANSec project is listed as the CNA for this advisory; the vulnerability report is published here.

  5. MITRE CVE Record — https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-19082 MITRE's CVE listing providing the formal CNA details and affected software scope.

Known Exploitation: As of this report's publication, CVE-2026-19082 is not listed in CISA's Known Exploited Vulnerabilities (KEV) catalog. No public exploit code, Nuclei templates, or Metasploit modules have been observed. No threat actors have been publicly attributed to exploiting this vulnerability in the wild. However, given the ease of crafting a malicious image and the breadth of Perl-based image processing deployments, monitoring for attempts is strongly recommended.

💣 PoC CODE AVAILABLE

Exploit code for this CVE is tracked in our database. Access poc_code via API Pro.

[ API_PRO ] →
◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2026-19082/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.