Lucene search
+L

TencentOS Server 3: nodejs:22 (TSSA-2026:0931)

🗓️ 27 Aug 2026 00:00:00Reported by TenableType 
nessus
 nessus
🔗 www.tenable.com👁 6 Views

Undici in TencentOS Server 3 nodejs:22 has response queue poisoning and cache misclassification.

Related
Refs
Code
ReporterTitlePublishedViews
Family
ibm
IBM Security Bulletins
Security Bulletin: IBM App Connect Enterprise is vulnerable to Cross-site Scripting due to Node.js modules ip-address and sanitize-html (CVE-2026-53606 & CVE-2026-42338)
23 Jul 202608:13
ibm
ibm
IBM Security Bulletins
Security Bulletin: IBM Maximo Application Suite - Visual Inspection component uses undici which is vulnerable to CVE-2026-11525, CVE-2026-12151, CVE-2026-6733, CVE-2026-9679
3 Aug 202611:04
ibm
ibm
IBM Security Bulletins
Security Bulletin: IBM App Connect Enterprise is vulnerable to multiple vulnerabilities due to multiple Node.js modules
31 Jul 202614:54
ibm
ibm
IBM Security Bulletins
Security Bulletin: Vulnerability in undici affects IBM watsonx Assistant Cartridge and IBM watsonx Orchestrate with watsonx Assistant Cartridge.
25 Aug 202618:11
ibm
ibm
IBM Security Bulletins
Security Bulletin: IBM Maximo Application Suite uses ip-address-10.1.0.tgz and fast-xml-builder-1.1.5.tgz which are vulnerable to CVE-2026-44664, CVE-2026-44665 and CVE-2026-42338.
30 Jun 202607:44
ibm
ibm
IBM Security Bulletins
Security Bulletin: IBM Maximo Application Suite - Visual Inspection component uses ip-address-10.1.0.tgz which is vulnerable to CVE-2026-42338
29 Jun 202615:55
ibm
ibm
IBM Security Bulletins
Security Bulletin: IBM Watsonx BI Assistant for CP4D affected by multiple CVEs
11 Aug 202619:07
ibm
ibm
IBM Security Bulletins
Security Bulletin:IP-Address Library Vulnerability: XSS Risk with Untrusted Input Rendering and HTML Escaping Issues
4 Aug 202610:08
ibm
ibm
IBM Security Bulletins
Security Bulletin:Vulnerability in Netty affects IBM Netezza Appliance
10 Aug 202612:33
ibm
ibm
IBM Security Bulletins
Security Bulletin: IBM Maximo Application Suite - Monitor Component uses multiple dependencies which are vulnerable to multiple CVEs.
27 Aug 202619:32
ibm
Rows per page
#%NASL_MIN_LEVEL 80900
##
# (C) Tenable, Inc.
#
# The descriptive text and package checks in this plugin were
# extracted from Tencent Linux Security Advisory TSSA-2026:0931.
##

include('compat.inc');

if (description)
{
  script_id(341100);
  script_version("1.1");
  script_set_attribute(attribute:"plugin_modification_date", value:"2026/08/27");

  script_cve_id(
    "CVE-2026-6733",
    "CVE-2026-9678",
    "CVE-2026-11525",
    "CVE-2026-12151",
    "CVE-2026-42338",
    "CVE-2026-48615",
    "CVE-2026-48618",
    "CVE-2026-48619",
    "CVE-2026-48928",
    "CVE-2026-48930",
    "CVE-2026-48933",
    "CVE-2026-48934",
    "CVE-2026-48935"
  );

  script_name(english:"TencentOS Server 3: nodejs:22 (TSSA-2026:0931)");

  script_set_attribute(attribute:"synopsis", value:
"The remote TencentOS Server 3 host is missing one or more security updates.");
  script_set_attribute(attribute:"description", value:
"The version of Tencent Linux installed on the remote TencentOS Server 3 host is prior to tested version. It is,
therefore, affected by multiple vulnerabilities as referenced in the TSSA-2026:0931 advisory.

    Package updates are available for TencentOS Server 3 that fix the following vulnerabilities:

    CVE-2026-6733:
    Impact:
    Undici's HTTP/1.1 client is vulnerable to response queue poisoning on reused keep-alive sockets. An
    attacker-controlled upstream server can inject an unsolicited HTTP/1.1 response onto an idle socket after
    a request completes. When the client dispatches the next request on that socket, it associates the
    injected response with the new request, causing responses to be delivered to the wrong requests.

    This requires an attacker-controlled or compromised upstream HTTP/1.1 server and keep-alive connection
    reuse.

    Patches:
    Upgrade to undici v6.26.0, v7.28.0 or v8.5.0.

    Workarounds:
    Disable keep-alive connection reuse by setting keepAliveTimeout: 0 on the Client or Pool.

    CVE-2026-9678:
    Impact:
    Undici's cache interceptor incorrectly classifies some responses as cacheable when the upstream Cache-
    Control header uses whitespace-padded qualified private or no-cache field names such as private=
    authorization or no-cache=\tauthorization. The parser preserves the surrounding whitespace, so later
    comparisons against the literal authorization field name fail and the response is stored.

    In shared-cache mode, this allows a response containing one user's authenticated data to be served from
    cache to a subsequent caller, including an unauthenticated caller, when both requests resolve to the same
    cache key.

    Affected applications are those that explicitly enable the cache interceptor (interceptors.cache()) in
    shared mode, forward Authorization headers upstream, and receive cacheable responses with non-canonical
    qualified private or no-cache directives.

    Patches:
    Upgrade to undici v7.28.0 or v8.5.0.

    Workarounds:
    If upgrade is not immediately possible, disable shared-cache mode for traffic that includes Authorization
    headers, avoid caching responses to authenticated requests, or add Vary: Authorization upstream.

    CVE-2026-11525:
    Impact:
    When undici parses a Set-Cookie header, it accepts any SameSite attribute value that contains Strict, Lax,
    or None as a substring, rather than the case-insensitive exact match specified by RFC 6265. Non-spec
    values are silently mapped to one of the three standard tokens. For example, SameSite=NoneOfYourBusiness
    is parsed as None (the most permissive setting), and SameSite=StrictLax is parsed as Lax (a downgrade from
    Strict).

    Affected applications are those that consume Set-Cookie headers from server responses (for example via
    undici's fetch or proxy code paths) and then forward or rely on the parsed sameSite attribute. A malicious
    or non-compliant server can coerce the consumer's view of a cookie's SameSite policy to a weaker value,
    silently degrading the SameSite enforcement the cookie is supposed to provide.

    This was introduced in undici 5.15.0 when the cookies feature was added.

    Patches:
    Upgrade to undici v6.26.0, v7.28.0 or v8.5.0.

    Workarounds:
    After parsing a Set-Cookie header, validate that the resulting sameSite attribute is one of 'Strict',
    'Lax', or 'None' (exact, case-insensitive) before forwarding or relying on it.

    CVE-2026-12151:
    Impact:
    The undici WebSocket client enforces maxPayloadSize on the cumulative byte count of fragments in a message
    but does not enforce a limit on the number of fragments. A malicious WebSocket server can stream many
    small or empty continuation frames that each pass per-frame and cumulative-size validation, collectively
    causing unbounded memory growth in the client process. The result is memory exhaustion and a denial of
    service.

    Affected applications are those using the undici WebSocket client (new WebSocket(...)) or the
    WebSocketStream API that can be induced to connect to an attacker-controlled or compromised WebSocket
    endpoint.

    All releases starting at undici 6.17.0 are affected.

    Patches:Upgrade to undici >= 6.26.0, >= 7.28.0, or >= 8.5.0.Workarounds:
    No workaround is available. The fix must be applied through an upgrade.

    CVE-2026-42338:
    ip-address is a library for parsing and manipulating IPv4 and IPv6 addresses in JavaScript. Prior to
    10.1.1, Address6.group() and Address6.link() do not HTML-escape attacker-controlled content before
    embedding it in the HTML strings they return, and AddressError.parseMessage (emitted by the Address6
    constructor for invalid input) can contain unescaped attacker-controlled content in one branch. An
    application that (1) passes untrusted input to Address6 and (2) renders the output of these methods, or
    the thrown error's parseMessage, as HTML (e.g. via innerHTML) is vulnerable to cross-site scripting. This
    vulnerability is fixed in 10.1.1.

    CVE-2026-48615:
    A flaw in Node.js proxy tunnel error handling could expose proxy credentials in ERR_PROXY_TUNNEL error
    messages.

    When proxy credentials are embedded in the proxy URL, they may be exposed through error handling paths and
    captured by logs, diagnostics, or other error consumers.

    This vulnerability affects all supported release lines: **Node.js 22**, **Node.js 24**, and **Node.js
    26**.

    CVE-2026-48618:
    A flaw in Node.js TLS hostname handling can cause Node.js unicode dot separator handling can lead to tls
    wildcard-depth authentication bypass due to resolver and verifier hostname normalization mismat.

    This can lead to confidentiality impact or bypass of the intended security boundary under affected
    configurations.

    This vulnerability affects all supported release lines: **Node.js 22**, **Node.js 24**, and **Node.js
    26**.

    CVE-2026-48619:
    A flaw in Node.js HTTP/2 client allows a server to send an unlimited number of ORIGIN frames, which could
    lead to an Out of Memory error on the client.

    This vulnerability affects all supported release lines: **Node.js 22**, **Node.js 24**, and **Node.js
    26**.

    CVE-2026-48928:
    A inconsistency in Node.js hostname matching can cause a trust-policy bypass in multi-context mTLS setups.

    This vulnerability affects all supported release lines: **Node.js 22**, **Node.js 24**, and **Node.js
    26**.

    CVE-2026-48930:
    A flaw in Node.js TLS hostname handling can cause Embedded-nul hostnames can lead to silent authority
    rebinding due to c-string truncation in resolver bindings.

    This vulnerability affects all supported release lines: **Node.js 22**, **Node.js 24**, and **Node.js
    26**.

    CVE-2026-48933:
    A flaw in Node.js WebCrypto implementation can crash the process if the input of subtle.encrypt() is a
    multiple of 2GiB.

    This vulnerability affects all supported release lines: **Node.js 22**, **Node.js 24**, and **Node.js
    26**.

    CVE-2026-48934:
    A flaw in Node.js TLS host verification can cause an attacker to bypass certification validation.

    This vulnerability affects all supported release lines: **Node.js 22**, **Node.js 24**, and **Node.js
    26**.

    CVE-2026-48935:
    A flaw in Node.js Permission API can cause a file metadata to be modified even on a path that was set as
    read-only with e.g. --allow-fs-read.

    This vulnerability affects all supported release lines: **Node.js 22**, **Node.js 24**, and **Node.js
    26**.

Tenable has extracted the preceding description block directly from the Tencent Linux security advisory.

Note that Nessus has not tested for these issues but has instead relied only on the application's self-reported version
number.");
  script_set_attribute(attribute:"see_also", value:"https://mirrors.tencent.com/tlinux/errata/tssa-20260931.xml");
  script_set_attribute(attribute:"solution", value:
"Update the affected packages.");
  script_set_cvss_base_vector("CVSS2#AV:N/AC:L/Au:N/C:C/I:C/A:C");
  script_set_cvss_temporal_vector("CVSS2#E:POC/RL:OF/RC:C");
  script_set_cvss3_base_vector("CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H");
  script_set_cvss3_temporal_vector("CVSS:3.0/E:P/RL:O/RC:C");
  script_set_attribute(attribute:"cvss4_vector", value:"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N");
  script_set_attribute(attribute:"cvss4_threat_vector", value:"CVSS:4.0/E:P");
  script_set_attribute(attribute:"cvss_score_source", value:"CVE-2026-48930");
  script_set_attribute(attribute:"cvss4_score_source", value:"CVE-2026-42338");

  script_set_attribute(attribute:"exploitability_ease", value:"Exploits are available");
  script_set_attribute(attribute:"exploit_available", value:"true");

  script_set_attribute(attribute:"vuln_publication_date", value:"2026/05/05");
  script_set_attribute(attribute:"patch_publication_date", value:"2026/07/20");
  script_set_attribute(attribute:"plugin_publication_date", value:"2026/08/27");

  script_set_attribute(attribute:"plugin_type", value:"local");
  script_set_attribute(attribute:"cpe", value:"cpe:/o:tencent:tencentos_server:3");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:tencent:tencentos_server:nodejs-packaging");
  script_set_attribute(attribute:"generated_plugin", value:"current");
  script_end_attributes();

  script_category(ACT_GATHER_INFO);
  script_family(english:"Tencent Local Security Checks");

  script_copyright(english:"This script is Copyright (C) 2026 and is owned by Tenable, Inc. or an Affiliate thereof.");

  script_dependencies("ssh_get_info2.nasl");
  script_require_keys("Host/local_checks_enabled", "Host/etc/os-release", "Host/TencentOS/rpm-list", "Host/cpu");

  exit(0);
}


include('rpm2.inc');

if (!get_kb_item('Host/local_checks_enabled')) audit(AUDIT_LOCAL_CHECKS_NOT_ENABLED);
var os_product = get_kb_item('installed_os/local/SSH/0/product');
if (isnull(os_product) || 'TencentOS' >!< os_product) audit(AUDIT_OS_NOT, 'TencentOS');
var os_version = get_kb_item('installed_os/local/SSH/0/version');
if (isnull(os_version)) audit(AUDIT_UNKNOWN_APP_VER, 'TencentOS');
if (! preg(pattern:"^3([^0-9]|$)", string:os_version)) audit(AUDIT_OS_NOT, 'TencentOS 3.x', 'TencentOS ' + os_version);

if (!get_kb_item('Host/TencentOS/rpm-list')) audit(AUDIT_PACKAGE_LIST_MISSING);

var cpu = get_kb_item('Host/cpu');
if (isnull(cpu)) audit(AUDIT_UNKNOWN_ARCH);
if ('x86_64' >!< cpu && cpu !~ "^i[3-6]86$" && 's390' >!< cpu && 'aarch64' >!< cpu) audit(AUDIT_LOCAL_CHECKS_NOT_IMPLEMENTED, 'TencentOS', cpu);

var constraints = [
  {
    'release': '3',
    'pkgs': [
      {'reference':'nodejs-packaging-2021.06-6.module+el8.10.0+817+2499aee6', 'rpm_spec_vers_cmp':TRUE},
      {'reference':'nodejs-packaging-bundler-2021.06-6.module+el8.10.0+817+2499aee6', 'rpm_spec_vers_cmp':TRUE}
    ]
  }
];

var os_release = get_one_kb_item('installed_os/local/SSH/0/release');
var os_sp = get_one_kb_item('Host/*/minor_release');

var flag = 0;
var reference;
var sp;
var _cpu;
var el_string;
var rpm_spec_vers_cmp;
var epoch;
var allowmaj;
var exists_check;
var cves;
foreach var constraint ( constraints ) {
  # Check that the target release is equal to the affected release
  if (!empty_or_null(constraint['release'])){
    if (constraint['release'] != os_release) continue;
  }
  if (!empty_or_null(constraint['sp'])){
    if (constraint['sp'] != os_sp) continue;
  }
  foreach var pkg ( constraint['pkgs'] ) {
    reference = NULL;
    sp = NULL;
    _cpu = NULL;
    el_string = NULL;
    rpm_spec_vers_cmp = NULL;
    epoch = NULL;
    allowmaj = NULL;
    exists_check = NULL;
    cves = NULL;
    if (!empty_or_null(pkg['reference'])) reference = pkg['reference'];
    if (!empty_or_null(pkg['sp'])) sp = pkg['sp'];
    if (!empty_or_null(pkg['cpu'])) _cpu = pkg['cpu'];
    if (!empty_or_null(pkg['el_string'])) el_string = pkg['el_string'];
    if (!empty_or_null(pkg['rpm_spec_vers_cmp'])) rpm_spec_vers_cmp = pkg['rpm_spec_vers_cmp'];
    if (!empty_or_null(pkg['epoch'])) epoch = pkg['epoch'];
    if (!empty_or_null(pkg['allowmaj'])) allowmaj = pkg['allowmaj'];
    if (!empty_or_null(pkg['exists_check'])) exists_check = pkg['exists_check'];
    if (!empty_or_null(pkg['cves'])) cves = pkg['cves'];
    if (reference &&
        ## (no known rpm to check OR known rpm_exists)
        (!exists_check || rpm_exists(rpm:exists_check)) &&
        rpm_check(sp:sp, cpu:_cpu, reference:reference, epoch:epoch, el_string:el_string, rpm_spec_vers_cmp:rpm_spec_vers_cmp, allowmaj:allowmaj, cves:cves)) flag++;
  }
}

if (flag)
{
  security_report_v4(
      port       : 0,
      severity   : SECURITY_HOLE,
      extra      : rpm_report_get()
  );
  exit(0);
}
else
{
  var tested = pkg_tests_get();
  if (tested) audit(AUDIT_PACKAGE_NOT_AFFECTED, tested);
  else audit(AUDIT_PACKAGE_NOT_INSTALLED, 'nodejs-packaging / nodejs-packaging-bundler');
}

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation

27 Aug 2026 00:00Current
6Medium risk
Vulners AI Score6
CVSS 3.18.1 - 9.8
CVSS 45.3
CVSS 37.7
EPSS0.03711
SSVC
6