{
  "document": {
    "category": "csaf_security_advisory",
    "csaf_version": "2.0",
    "distribution": {
      "text": "© Copyright 2026 ABB. All rights reserved.",
      "tlp": {
        "label": "WHITE"
      }
    },
    "lang": "en",
    "notes": [
      {
        "category": "summary",
        "text": "An update is available that resolves a publicly reported vulnerability in the product versions listed as affected in the advisory.\n\nAn attacker who successfully exploited this vulnerability could cause the product to stop, disclose process memory or insert and run arbitrary code.",
        "title": "Summary"
      },
      {
        "category": "other",
        "text": "For additional instructions and support please contact your local ABB service organization. For contact information, see www.abb.com/contactcenters.\n\nInformation about ABB’s cyber security program and capabilities can be found at www.abb.com/cybersecurity.",
        "title": "Support"
      },
      {
        "category": "legal_disclaimer",
        "text": "The information in this document is subject to change without notice, and should not be construed as a commitment by ABB.\n\nABB provides no warranty, express or implied, including warranties of merchantability and fitness for a particular purpose, for the information contained in this document, and assumes no responsibility for any errors that may appear in this document. In no event shall ABB or any of its suppliers be liable for direct, indirect, special, incidental or consequential damages of any nature or kind arising from the use of this document, or from the use of any hardware or software described in this document, even if ABB or its suppliers have been advised of the possibility of such damages.\n\nThis document and parts hereof must not be reproduced or copied without written permission from ABB, and the contents hereof must not be imparted to a third party nor used for any unauthorized purpose.\n\nAll rights to registrations and trademarks reside with their respective owners.",
        "title": "Notice"
      },
      {
        "category": "other",
        "text": "For any installation of software-related ABB products we strongly recommend the following (non-exhaustive) list of cyber security practices:\n\n- Isolate special purpose networks (e.g. for automation systems) and remote devices behind firewalls and separate them from any general-purpose network (e.g. office or home networks).\n- Install physical controls so no unauthorized personnel can access your devices, components, peripheral equipment, and networks.\n- Never connect programming software or computers containing programing software to any network other than the network for the devices that it is intended for.\n- Scan all data imported into your environment before use to detect potential malware infections.\n- Minimize network exposure for all applications and endpoints to ensure that they are not accessible from the Internet unless they are designed for such exposure and the intended use requires such.\n- Ensure all nodes are always up to date in terms of installed software, operating system, and firmware patches as well as anti-virus and firewall.\n- When remote access is required, use secure methods, such as Virtual Private Networks (VPNs). Recognize that VPNs may have vulnerabilities and should be updated to the most current version available. Also, understand that VPNs are only as secure as the connected devices.",
        "title": "General security recommendations"
      },
      {
        "category": "other",
        "text": "ABB has a rigorous internal cyber security continuous improvement process which involves regular testing with industry leading tools and periodic assessments to identify potential product issues. Occasionally an issue is determined to be a design or coding flaw with implications that may impact product cyber security.\n\nWhen a potential product vulnerability is identified or reported, ABB immediately initiates our vulnerability handling process. This entails validating if the issue is in fact a product issue, identifying root causes, determining what related products may be impacted, developing a remediation, and notifying end users and governmental organizations.\n\nThe resulting Cyber Security Advisory intends to notify customers of the vulnerability and provide details on which products are impacted, how to mitigate the vulnerability or explain workarounds that minimize the potential risk as much as possible. The release of a Cyber Security Advisory should not be misconstrued as an affirmation or indication of an active threat or ongoing campaign targeting the products mentioned here. If ABB is aware of any specific threats, it will be clearly mentioned in the communication.\n\nThe publication of this Cyber Security Advisory is an example of ABB’s commitment to the user community in support of this critical topic. Responsible disclosure is an important element in the chain of trust we work to maintain with our many customers. The release of an Advisory provides timely information which is essential to help ensure our customers are fully informed.",
        "title": "Purpose"
      },
      {
        "category": "faq",
        "text": "What causes the vulnerability?\n- The vulnerability is caused by an unchecked return value (invalid block switch handled as \"need more input\") in the Brotli decoder in the Node.js runtime of Advanced Batch Management, which leads to an out-of-bounds write in an internal decoder buffer.\n\nWhat is Node.js?\n- Node.js is the JavaScript runtime that Advanced Batch Management uses to run Node-RED. The Brotli decoder is part of its compression library (node:zlib).\n\nWhat might an attacker use the vulnerability to do?\n- An attacker who successfully exploited this vulnerability could cause the affected system node to stop or become inaccessible, disclose process memory, or insert and run arbitrary code.\n\nHow could an attacker exploit the vulnerability?\n- An attacker could try to exploit the vulnerability by supplying a specially crafted Brotli-compressed stream to an application that decompresses it with “node:zlib” or another affected decoder, for example as a response from a server controlled by the attacker. In the ABM standard configuration, the built-in Node-RED HTTP nodes do not pass Brotli data to the decoder. Recommended practices help mitigate such attacks, see section Mitigating factors above.\n\nCould the vulnerability be exploited remotely?\n- Yes, an attacker who has network access to an affected system node could exploit this vulnerability. Recommended practices include that process control systems are physically protected, have no direct connections to the Internet, and are separated from other networks by means of a firewall system that has a minimal number of ports exposed.\n\nCan functional safety be affected by an exploit of this vulnerability?\n- No, there is no impact on functional safety.\n\nWhat does the update do?\n- The update removes the vulnerability by replacing the Node.js runtime with a release whose Brotli decoder treats an invalid block switch as a permanent format error.\n\nWhen this security advisory was issued, had this vulnerability been publicly disclosed?\n- Yes, this vulnerability has been publicly disclosed.\n\nWhen this security advisory was issued, had ABB received any reports that this vulnerability was being exploited?\n- No, ABB had not received any information indicating that this vulnerability had been exploited when this security advisory was originally issued.",
        "title": "Frequently Asked Questions"
      }
    ],
    "publisher": {
      "category": "vendor",
      "name": "ABB PSIRT",
      "namespace": "https://www.abb.com/global/en/company/about/cybersecurity/alerts-and-notifications"
    },
    "references": [
      {
        "category": "self",
        "summary": "ABB CYBERSECURITY ADVISORY - PDF Version ",
        "url": "https://search.abb.com/library/Download.aspx?DocumentID=4JNO000550-1189&LanguageCode=en&DocumentPartId=&Action=Launch"
      },
      {
        "category": "self",
        "summary": "ABB CYBERSECURITY ADVISORY - CSAF Version ",
        "url": "https://psirt.abb.com/csaf/2026/4jno000550-1189.json"
      }
    ],
    "title": "Node2Shell Vulnerability for Advanced Batch Management",
    "tracking": {
      "current_release_date": "2026-11-04T00:30:00.000Z",
      "generator": {
        "date": "2026-11-04T12:43:42.782Z",
        "engine": {
          "name": "Secvisogram",
          "version": "2.6.16"
        }
      },
      "id": "4JNO000550-1189",
      "initial_release_date": "2026-11-04T00:30:00.000Z",
      "revision_history": [
        {
          "date": "2026-11-04T00:30:00.000Z",
          "legacy_version": "A",
          "number": "1",
          "summary": "Initial version."
        }
      ],
      "status": "final",
      "version": "1"
    }
  },
  "product_tree": {
    "branches": [
      {
        "branches": [
          {
            "branches": [
              {
                "category": "product_version",
                "name": "1.2.1",
                "product": {
                  "name": "ABB Advanced Batch Management (ABM) 1.2.1",
                  "product_id": "AV1"
                }
              },
              {
                "category": "product_version",
                "name": "1.2",
                "product": {
                  "name": "ABB Advanced Batch Management (ABM) 1.2",
                  "product_id": "AV2"
                }
              },
              {
                "category": "product_version",
                "name": "1.1b",
                "product": {
                  "name": "ABB Advanced Batch Management (ABM) 1.1b",
                  "product_id": "AV3"
                }
              },
              {
                "category": "product_version",
                "name": "1.1",
                "product": {
                  "name": "ABB Advanced Batch Management (ABM) 1.1",
                  "product_id": "AV4"
                }
              },
              {
                "category": "product_version",
                "name": "1.0",
                "product": {
                  "name": "ABB Advanced Batch Management (ABM) 1.0",
                  "product_id": "AV5"
                }
              }
            ],
            "category": "product_name",
            "name": "Advanced Batch Management (ABM)"
          }
        ],
        "category": "vendor",
        "name": "ABB"
      }
    ]
  },
  "vulnerabilities": [
    {
      "cve": "CVE-2026-111497",
      "cwe": {
        "id": "CWE-787",
        "name": "Out-of-bounds Write"
      },
      "notes": [
        {
          "category": "description",
          "text": "An invalid block switch in the Brotli decoder is reported as a temporary need for more input instead of a permanent format error. The streaming decoder therefore keeps appending input bytes to an eight-byte internal buffer and writes past its end, which allows corrupting process memory.\n\nIn the reviewed ABM standard configuration, no default path to the vulnerable decoder was identified (see Mitigating factors).",
          "title": "CVE description"
        }
      ],
      "product_status": {
        "known_affected": [
          "AV1",
          "AV2",
          "AV3",
          "AV4",
          "AV5"
        ]
      },
      "references": [
        {
          "category": "external",
          "summary": "NVD - CVE-2026-111497",
          "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-111497"
        }
      ],
      "remediations": [
        {
          "category": "vendor_fix",
          "details": "The problem is corrected by updating the Node.js runtime used by the product versions listed as affected. A new ABM release containing the patched runtime is not yet available; until then, the runtime must be updated manually:\n\n- Node.js 24.x (ABM 1.2, 1.2.1): Update to Node.js 24.22.1 or later within the 24.x line. This version has been successfully tested with the ABM standard.\n\nABB recommends that customers apply the update at earliest convenience. Major-version changes require compatibility testing before a production restart.\n\nWhere ASP.NET Core / .NET components are deployed together with ABM, ABB additionally recommends installing the vendor-patched .NET releases.",
          "product_ids": [
            "AV1",
            "AV2"
          ]
        },
        {
          "category": "vendor_fix",
          "details": "The problem is corrected by updating the Node.js runtime used by the product versions listed as affected. A new ABM release containing the patched runtime is not yet available; until then, the runtime must be updated manually:\n\n- Node.js 20.x with Node-RED 4 (ABM 1.0, 1.1, 1.1b): Node.js 20 is not covered by a fixed release. Migrate to Node.js 24.22.1 or later and test project nodes and flows before production use.\n- Node.js 20.x with Node-RED 3 (ABM 1.0, 1.1, 1.1b): Node-RED 3 is not compatible with Node.js 22 or later. Upgrade Node-RED to version 4 or later first, then migrate Node.js. Validate the combined change in a staging environment.\n\nABB recommends that customers apply the update at earliest convenience. Major-version changes require compatibility testing before a production restart.\n\nWhere ASP.NET Core / .NET components are deployed together with ABM, ABB additionally recommends installing the vendor-patched .NET releases.",
          "product_ids": [
            "AV3",
            "AV4",
            "AV5"
          ]
        },
        {
          "category": "workaround",
          "details": "Workarounds are specific measures that a user can take to help block an attack. ABB has tested the following workarounds. Although these workarounds will not correct the underlying vulnerability, they can help block known attack vectors.\n\nFor project-specific HTTP calls that cannot be updated immediately, adjust the client code so that Brotli responses are not decompressed automatically:\n- Use a supported client option such as decompress: false, or\n- reject responses with Content-Encoding: br.\n\nImpact of workaround: Brotli-compressed responses from the affected server are no longer processed automatically or are rejected. Verify the behavior of the specific client. Setting Accept-Encoding: identity alone is not sufficient, because a server can ignore it and some clients still decompress automatically.",
          "product_ids": [
            "AV1",
            "AV2",
            "AV3",
            "AV4",
            "AV5"
          ]
        }
      ],
      "scores": [
        {
          "cvss_v3": {
            "attackComplexity": "HIGH",
            "attackVector": "NETWORK",
            "availabilityImpact": "HIGH",
            "baseScore": 8.1,
            "baseSeverity": "HIGH",
            "confidentialityImpact": "HIGH",
            "environmentalScore": 8.1,
            "environmentalSeverity": "HIGH",
            "integrityImpact": "HIGH",
            "privilegesRequired": "NONE",
            "scope": "UNCHANGED",
            "temporalScore": 8.1,
            "temporalSeverity": "HIGH",
            "userInteraction": "NONE",
            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H",
            "version": "3.1"
          },
          "products": [
            "AV1",
            "AV2",
            "AV3",
            "AV4",
            "AV5"
          ]
        }
      ],
      "title": "CVE-2026-111497"
    }
  ]
}