Lucene search
+L

Unity Linux 20.1050a Security Update: kernel (UTSA-2026-104581)

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

Unity Linux 20.1050a kernel: unprivileged users can dump LLSEC AES-128 keys via legacy netlink.

Related
Refs
Code
ReporterTitlePublishedViews
Family
cve
CVE
CVE-2026-72049
15 Aug 202605:52
cve
cvelist
Cvelist
CVE-2026-72049 ieee802154: admin-gate legacy LLSEC dump operations
15 Aug 202605:52
cvelist
debiancve
Debian CVE
CVE-2026-72049
15 Aug 202605:52
debiancve
euvd
EUVD
EUVD-2026-59007
15 Aug 202605:52
euvd
nvd
NVD
CVE-2026-72049
15 Aug 202606:21
nvd
osv
OSV
BELL-CVE-2026-72049
18 Aug 202606:06
osv
osv
OSV
DEBIAN-CVE-2026-72049
15 Aug 202606:21
osv
osv
OSV
UBUNTU-CVE-2026-72049
15 Aug 202606:21
osv
nessus
Tenable Nessus
Photon OS 5.0: Linux PHSA-2026-5.0-92-0952
12 Aug 202600:00
nessus
nessus
Tenable Nessus
Linux Distros Unpatched Vulnerability : CVE-2026-72049
18 Aug 202600:00
nessus
Rows per page
#%NASL_MIN_LEVEL 80900
##
# (C) Tenable, Inc.
##

include('compat.inc');

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

  script_cve_id("CVE-2026-72049");

  script_name(english:"Unity Linux 20.1050a Security Update: kernel (UTSA-2026-104581)");

  script_set_attribute(attribute:"synopsis", value:
"The Unity Linux host is missing one or more security updates.");
  script_set_attribute(attribute:"description", value:
"The Unity Linux 20 host has a package installed that is affected by a vulnerability as referenced in the
UTSA-2026-104581 advisory.

    In the Linux kernel, the following vulnerability has been resolved:

    ieee802154: admin-gate legacy LLSEC dump operations

    In net/ieee802154/netlink.c, the legacy IEEE802154_NL family ops table
    builds the LLSEC dump entries (LLSEC_LIST_KEY, LLSEC_LIST_DEV,
    LLSEC_LIST_DEVKEY, LLSEC_LIST_SECLEVEL) with IEEE802154_DUMP() which
    sets no .flags, so generic netlink runs them ungated. The modern
    nl802154 family admin-gates the equivalent reads via
    NL802154_CMD_GET_SEC_KEY and friends with .flags = GENL_ADMIN_PERM.

    Any local uid that can open AF_NETLINK / NETLINK_GENERIC can resolve
    the 802.15.4 MAC family and dump LLSEC_LIST_KEY on any wpan netdev
    that has an LLSEC key installed; the dump handler writes the raw
    16-byte AES-128 key bytes (IEEE802154_ATTR_LLSEC_KEY_BYTES, copied
    verbatim from struct ieee802154_llsec_key.key) into the reply.
    Recovering the AES key compromises 802.15.4 LLSEC link confidentiality
    and authenticity, since LLSEC uses CCM* and the same key authenticates
    and encrypts frames.

    Impact: any local uid with no capabilities can read the raw 16-byte
    AES-128 LLSEC key from the kernel keytable on any wpan netdev that has
    an administrator-installed LLSEC key, by issuing an LLSEC_LIST_KEY
    dump on the legacy IEEE802154_NL generic-netlink family.

    Introduce IEEE802154_DUMP_PRIV() mirroring IEEE802154_DUMP() but
    setting .flags = GENL_ADMIN_PERM, and use it for the four LLSEC dump
    entries. LIST_PHY and LIST_IFACE retain IEEE802154_DUMP() because the
    modern nl802154 family exposes their equivalents to unprivileged
    readers by design (NL802154_CMD_GET_WPAN_PHY and
    NL802154_CMD_GET_INTERFACE carry can be retrieved by unprivileged
    users annotations).

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

Note that Nessus has not tested for this issue but has instead relied only on the application's self-reported version
number.");
  # https://src.uniontech.com/#/security_advisory_detail?utsa_id=UTSA-2026-104581
  script_set_attribute(attribute:"see_also", value:"http://www.nessus.org/u?9a47f63c");
  # https://lore.kernel.org/linux-cve-announce/2026081515-CVE-2026-72049-9d7a@gregkh
  script_set_attribute(attribute:"see_also", value:"http://www.nessus.org/u?832a94a2");
  script_set_attribute(attribute:"see_also", value:"https://nvd.nist.gov/vuln/detail/CVE-2026-72049");
  script_set_attribute(attribute:"solution", value:
"Update the affected kernel package.");
  script_set_cvss_base_vector("CVSS2#AV:L/AC:L/Au:S/C:C/I:C/A:N");
  script_set_cvss_temporal_vector("CVSS2#E:U/RL:OF/RC:C");
  script_set_cvss3_base_vector("CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N");
  script_set_cvss3_temporal_vector("CVSS:3.0/E:U/RL:O/RC:C");
  script_set_attribute(attribute:"cvss_score_source", value:"CVE-2026-72049");

  script_set_attribute(attribute:"exploitability_ease", value:"No known exploits are available");
  script_set_attribute(attribute:"exploit_available", value:"false");

  script_set_attribute(attribute:"vuln_publication_date", value:"2026/08/11");
  script_set_attribute(attribute:"patch_publication_date", value:"2026/08/25");
  script_set_attribute(attribute:"plugin_publication_date", value:"2026/08/26");

  script_set_attribute(attribute:"plugin_type", value:"local");
  script_set_attribute(attribute:"generated_plugin", value:"current");
  script_end_attributes();

  script_category(ACT_GATHER_INFO);
  script_family(english:"Unity Linux 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/UOS-Server/release", "Host/UOS-Server/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) || 'UOS Server' >!< os_product) audit(AUDIT_OS_NOT, 'UOS Server');
var os_version = get_kb_item('installed_os/local/SSH/0/version');
if (isnull(os_version)) audit(AUDIT_UNKNOWN_APP_VER, 'UOS Server');
if (! preg(pattern:"^(20.1050a)([^0-9]|$)", string:os_version)) audit(AUDIT_OS_NOT, 'UOS Server 20.1050a', 'UOS Server ' + os_version);

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

var cpu = get_kb_item('Host/cpu');
if (isnull(cpu)) audit(AUDIT_UNKNOWN_ARCH);
if ('aarch64' >!< cpu && 'amd64' >!< cpu && 'x86_64' >!< cpu) audit(AUDIT_LOCAL_CHECKS_NOT_IMPLEMENTED, 'UOS Server', cpu);


var constraints = [
  {
    'release': '20',
    'sp': '1050a',
    'pkgs': [
      {'reference':'kernel-5.10.0-27.18.uelc20', 'sp':'1050a', 'cpu':'aarch64', 'rpm_spec_vers_cmp':TRUE},
      {'reference':'kernel-5.10.0-27.18.uelc20', 'sp':'1050a', 'cpu':'amd64', 'rpm_spec_vers_cmp':TRUE},
      {'reference':'kernel-5.10.0-27.18.uelc20', 'sp':'1050a', 'cpu':'x86_64', '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_WARNING,
      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, 'kernel');
}

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

26 Aug 2026 00:00Current
5.5Medium risk
Vulners AI Score5.5
CVSS 3.17.1
EPSS0.0016
6