☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
[ VENDOR STATS ]
CVSS: 2.1 🐛 CWE-1022
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2025-59842

CVE-2025-59842 Supply Chain Attack in Jupyterlab
📅 PUBLISHED: 2025-09-26 15:53 UTC 🔄 UPDATED: 2026-09-23 20:37 UTC
[ OFFICIAL PATCH DEPLOYED ↓ ] FIX: LIKELY — 2 independent sources confirm fix
[ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.24%
👁️
0.24% probability
6.0× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
Patch available — upgrade to latest release
CVSS SEVERITY SCALE
9.0–10.0 CRITICAL
7.0–8.9 HIGH
4.0–6.9 MEDIUM
0.1–3.9 LOW
0.0 NONE
2.1
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-59842 is a low-severity vulnerability in JupyterLab (versions prior to 4.4.8) and Jupyter Notebook, involving missing noopener attribute on links generated by LaTeX typesetters in Markdown content. This omission could theoretically allow reverse tabnabbing attacks if a user clicks on a LaTeX-generated link that opens in a new tab (target="_blank"). In practice, no known third-party LaTeX-rendering extensions that set target="_blank" exist, and default installations are unaffected. The vulnerability has been patched in JupyterLab 4.4.8.

⚡ 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

Supply Chain & Package Security

JupyterLab is distributed via PyPI (jupyterlab package). Users should update to version 4.4.8 or later using pip install --upgrade jupyterlab. The vulnerability does not affect the core Jupyter Notebook package directly, but users of Jupyter Notebook with LaTeX rendering extensions should verify their setup.

CVSS Breakdown & Threat Level

  • CVSS Score: 0.0 (NVD) / 3.1 (Calculated)
  • Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:N
  • Attack Vector: Network
  • Attack Complexity: Low
  • Privileges Required: None
  • User Interaction: Required (clicking a link)
  • Scope: Unchanged
  • Confidentiality Impact: None
  • Integrity Impact: Low (potential phishing/malicious redirect)
  • Availability Impact: None
  • Threat Level: Low – Exploitation requires user interaction and a specific, unlikely configuration (third-party LaTeX extension with target="_blank").

Deep Dive & Mechanics

The vulnerability resides in how JupyterLab and Jupyter Notebook handle links generated by LaTeX typesetters within Markdown cells or files. When a user writes LaTeX code that produces a hyperlink (e.g., \href{https://example.com}{text}), the rendered HTML link does not include the rel="noopener noreferrer" attribute. If the link is set to open in a new tab (target="_blank"), the new page can access the window.opener object of the original JupyterLab tab, enabling a reverse tabnabbing attack. This could allow a malicious site to redirect the original tab to a phishing page or perform other UI redressing.

The attack scenario requires:

  1. A user has a third-party LaTeX-rendering extension that sets target="_blank" on generated links.
  2. The user clicks on a LaTeX-generated link.
  3. The linked page contains malicious JavaScript that modifies the original tab's location.

No such extensions are known to exist, and default JupyterLab installations do not set target="_blank on LaTeX links.

Vulnerable vs. Patched Code

Vulnerable (pre-4.4.8):

<!-- LaTeX-generated link without noopener -->
<a href="https://malicious.com" target="_blank">Click me</a>

Patched (4.4.8+):

<!-- LaTeX-generated link with noopener noreferrer -->
<a href="https://malicious.com" target="_blank" rel="noopener noreferrer">Click me</a>

The patch adds rel="noopener noreferrer" to all links generated by LaTeX typesetters, preventing the new tab from accessing window.opener.

Exploitation & Lab Setup

Red Team

Prerequisites:

  • JupyterLab version < 4.4.8
  • A third-party LaTeX extension that sets target="_blank" (theoretical; no known extensions exist)
  • User interaction (clicking the link)

Exploitation Steps:

  1. Create a Jupyter Notebook with a Markdown cell containing a LaTeX link:
    \href{https://attacker.com/exploit}{Click for more info}
    
  2. Ensure the LaTeX extension renders this with target="_blank".
  3. Host a malicious page at https://attacker.com/exploit that executes:
    if (window.opener) {
        window.opener.location = 'https://attacker.com/phishing';
    }
    
  4. When the victim clicks the link, the new tab opens the malicious page, which redirects the original JupyterLab tab to a phishing site.

Note: This attack is theoretical and requires a non-default extension.

Blue Team

Detection:

  • Monitor for unusual outbound links from JupyterLab instances.
  • Check for third-party LaTeX extensions that modify link behavior.
  • Review server logs for Referer headers indicating tabnabbing attempts.

Prevention:

  • Update JupyterLab to version 4.4.8 or later.
  • Restrict installation of third-party extensions.
  • Use Content Security Policy (CSP) headers to limit window.opener access.

Indicators of Compromise (IOCs)

  • Network: Outbound connections from JupyterLab to unknown domains with Referer header pointing to JupyterLab URL.
  • File: Presence of third-party LaTeX extensions in ~/.jupyter/lab/user-settings/ or ~/.jupyter/lab/extensions/.
  • Behavior: Unexpected redirects of JupyterLab tabs after clicking LaTeX-generated links.

Detection Engineering

YARA Rule

rule CVE_2025_59842_LaTeX_Noopener {
    meta:
        description = "Detects missing noopener attribute in LaTeX-generated links in JupyterLab"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-59842"
    strings:
        $latex_href = /\bhref\{[^}]+\}\{[^}]+\}/ nocase
        $target_blank = /target\s*=\s*["']_blank["']/ nocase
        $noopener = /rel\s*=\s*["'][^"']*noopener[^"']*["']/ nocase
    condition:
        $latex_href and $target_blank and not $noopener
}

Sigma Rule

title: CVE-2025-59842 - Missing noopener in LaTeX Links
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects JupyterLab versions with missing noopener attribute on LaTeX-generated links
author: Valters IT
date: 2025-04-10
logsource:
    product: jupyterlab
    service: notebook
detection:
    selection:
        version|version_lt: '4.4.8'
    condition: selection
falsepositives:
    - Custom extensions that intentionally omit noopener
level: low

Suricata Rule

alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2025-59842 - Potential Reverse Tabnabbing via LaTeX Link"; flow:to_server,established; content:"Referer"; http_header; content:"jupyter"; http_header; nocase; pcre:"/href=\{https?:\/\/[^}]+\}\{[^}]+\}/"; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate:

  • Update JupyterLab to version 4.4.8 or later: pip install --upgrade jupyterlab
  • Verify the update: jupyter lab --version

Long-term:

  • Implement Content Security Policy (CSP) headers to restrict window.opener access.
  • Audit all third-party JupyterLab extensions for security best practices.
  • Educate users about the risks of clicking links in untrusted notebooks.

Workarounds:

  • Disable LaTeX rendering in Markdown cells if not needed.
  • Use a browser extension that enforces rel="noopener" on all links.

Valters IT
Securing Digital Frontiers

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2025-59842/ · 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.