From Reachability to Reality: Proving Vulnerable Code was Executed & Exploited in Production

Memory analysis plays a critical role in turning kernel-level signals into function-level proof of execution. See which vulnerable functions actually run in your environment, cut noise and prioritize risk that exists (and is exploitable) in your running application.

written by
Gal Sapir
published on
November 4, 2025
topic
Runtime Intelligence
Kodem Kernels - Product Updates

The Problem: Alerts Without Proof

Traditional scanners and static reachability raise volume. We spend time going back and forth with Engineering on issues that never execute. Confirmation that a vulnerable function ran in our environment would eliminate the need for those conversations altogether. This allows us to focus on issues that are real in our application

The Solution: Runtime Function-Level Evidence in Kodem

  • Supported Languages: Java, Scala, Kotlin, JavaScript, TypeScript, Go, Ruby, Python.
  • Evidence location: Triage Issues > Runtime Evidence. Export JSON for developer handoff.
  • Developer Context: Stack traces, image and environment context.
  • Result: Correlated static findings with runtime evidence, reducing false positives and prioritizing issues that are both reachable and observed in execution.
Overview of executed and not-executed vulnerabilities with percentages of runtime vs non-runtime issues.
Detailed runtime evidence showing functions, files, and classes with vulnerable execution data in downloadable JSON.

How it Works

Kodem uses verified eBPF sensor programs that run directly within the kernel to provide a lightweight layer of visibility into system calls, process execution and file activity. The low-overhead visibility layer serves as a triggering mechanism for our memory analysis engine, which correlates kernel-level signals with memory fingerprints to confirm which code paths and third-party modules were actually loaded and executed.

Kodem Runtime IntelligenceTM tracks software modules as they load at runtime and builds a runtime bill of materials. It observes framework load functions and records which modules become active, then links observations to vulnerable functions tied to known CVEs.

The combination of lightweight eBPF visibility and comprehensive memory analysis provides detailed evidence: 

  • Which vulnerable functions were observed in runtime.
  • Which classes and packages executed.
  • Which files are running.
  • Which processes executed.
  • Versus those that remained dormant.

This helps teams prioritize CVEs where vulnerable code paths have been loaded into memory and executed versus those that were not loaded during runtime.

What Memory Analysis Adds

Memory analysis transforms eBPF observations into effective prioritization. Rather than investigating every CVE, teams focus exclusively on vulnerabilities with evidence of runtime execution in their specific environment

Benefits: Proof Over Prediction - Reachability vs. Execution

Static call graphs often over-approximate possible call paths; they are designed for coverage, not certainty. Runtime evidence confirms execution in your environment, so teams prioritize the issues that truly run.

  • Static reachability estimates whether code could call a vulnerable function. 
  • Kodem confirms that a vulnerable function did run in your environment with function-level evidence.

The Result: Instead of 'CVE-2023-26136 might affect your system,' you get definitive function and file-level proof like this example from a JavaScript application:

{
        "environment": "staging",
        "namespace": "staging-ecommerce",
        "application": "shopping-cart",
        "image": "registry.company.com/apps/shopping-cart:v2.1.4",
        "package": "tough-cookie",
        "versions": [
            "2.4.3",
            "2.5.0"
        ],
        "language": "javascript",
        "issueInRuntime": true,
        "lastObserved": "2025-01-15T14:22:33Z",
        "firstObserved": "2024-12-08T09:15:42Z",
        "functionsInRuntime": [
            "/app/node_modules/tough-cookie/lib/cookie.js: CookieJar",
            "/app/node_modules/tough-cookie/lib/cookie.js: syncWrap",
            "/app/node_modules/tough-cookie/lib/store.js: Store",
            "/app/node_modules/tough-cookie/lib/memstore.js: MemoryCookieStore"
        ],
        "vulnerableFunctionsInRuntime": {
            "lib/memstore.js: MemoryCookieStore": [
                "CVE-2023-26136"
            ]
        },
        "vulnerableFunctionsNotInRuntime": {
            "lib/memstore.js: removeAllCookies": [
                "CVE-2023-26136"
            ],
            "lib/memstore.js: putCookie": [
                "CVE-2023-26136"
            ]
        },
        "runningFiles": [
            "/app/node_modules/tough-cookie/lib/pathMatch.js",
            "/app/node_modules/tough-cookie/lib/permuteDomain.js",
            "/app/node_modules/tough-cookie/lib/store.js",
            "/app/node_modules/tough-cookie/lib/version.js",
            "/app/node_modules/tough-cookie/lib/memstore.js"
        ],
        "runningVulnerableFiles": {
            "lib/memstore.js": [
                "CVE-2023-26136"
            ]
        }

Outcomes in Practice

“Most security tools are gym memberships. Kodem is the personal trainer actually helping us get fit.” — Nir Rothenberg, CISO, Rapyd.

At Rapyd, AppSec teams shifted from chasing volume to driving impact by focusing on issues with runtime function-level evidence of execution, not static predictions:

  • 40% reduction in AppSec triage time by focusing only on executed vulnerabilities.
  • 90% of scanner-detected CVEs proven non-exploitable in their environment.
  • Faster developer adoption through evidence-backed prioritization that eliminates false positives.

AppSc-to-Dev Workflow: From Evidence to Fix

  1. Share evidence where work happens: From Triage Issues → Runtime Evidence, AppSec teams export the JSON and create developer tickets with executed function details, stack traces, image context and environment specifics alongside the fix path.
  2. Integrate into existing workflows: Kodem’s Jira integration brings runtime intelligence directly into development workflows, so engineers receive tickets with full execution context and can move from triage to resolution faster.
  3. Make evidence-based policies enforceable: AppSec teams can implement policies that block deployments when executed vulnerable functions are detected in production namespaces; keeping security gates focused on real risk while allowing safe changes to flow.

Result: AppSec teams spend time on real threats, developers get actionable tickets with evidence. This evidence-driven approach transforms the traditional AppSec-Dev dynamic from "remediate everything we found" to "remediate what's actually running and exploitable in your environment."

Blog written by

Gal Sapir

Senior Technical Writer

With six years of technical writing expertise in the SaaS industry, Gl specializes in translating complex technical concepts into clear API documentation, user guides, technical tutorials and product updates. Her collaborative approach with cross-functional teams ensures technical accuracy while delivering clear content that effectively communicates across diverse audiences.

More blogs

View all

Vulnerability Alert CVE-2025-4665: Critical Pre-Auth SQL Injection in WordPress Contact Form Database Plugin (CFDB7)

CVE-2025-4665 is a critical (CVSS 9.6) pre-authentication SQL injection vulnerability in the WordPress Contact Form CFDB7 Database Addon plugin. The flaw allows remote attackers to exploit insufficient input validation and unsafe deserialization without authentication, affecting versions 1.3.2 and earlier. This vulnerability enables data exfiltration, database manipulation and potential remote code execution through PHP object injection chains.

November 4, 2025

A Guide to Securing AI Code Editors: Cursor, Claude Code, Gemini CLI, and OpenAI Codex

AI-powered code editors such as Cursor, Claude Code, Gemini CLI, and OpenAI Codex are rapidly becoming part of enterprise development environments.

October 31, 2025

From Discovery to Resolution: A Single Source of Truth for Vulnerability Statuses

Continuous visibility from first discovery to final resolution across code repositories and container images, showing who fixed each vulnerability, when it was resolved and how long closure took. Kodem turns issue statuses into ownership for engineers, progress tracking for leadership and defensible risk reduction for application security.

October 27, 2025

A Primer on Runtime Intelligence

See how Kodem's cutting-edge sensor technology revolutionizes application monitoring at the kernel level.

5.1k
Applications covered
1.1m
False positives eliminated
4.8k
Triage hours reduced

Platform Overview Video

Watch our short platform overview video to see how Kodem discovers real security risks in your code at runtime.

5.1k
Applications covered
1.1m
False positives eliminated
4.8k
Triage hours reduced

The State of the Application Security Workflow

This report aims to equip readers with actionable insights that can help future-proof their security programs. Kodem, the publisher of this report, purpose built a platform that bridges these gaps by unifying shift-left strategies with runtime monitoring and protection.

Get real-time insights across the full stack…code, containers, OS, and memory

Watch how Kodem’s runtime security platform detects and blocks attacks before they cause damage. No guesswork. Just precise, automated protection.

Stay up-to-date on Audit Nexus

A curated resource for the many updates to cybersecurity and AI risk regulations, frameworks, and standards.