Lucene search
K

Amazon Linux 2 : openssl-snapsafe, --advisory ALAS2OPENSSL-SNAPSAFE-2026-011 (ALASOPENSSL-SNAPSAFE-2026-011)

🗓️ 22 Jun 2026 00:00:00Reported by TenableType 
nessus
 nessus
🔗 www.tenable.com👁 2 Views

openssl-snapsafe on Amazon Linux 2 has heap overread and CMS decryption risks on 64-bit Unix; FIPS modules unaffected.

Related
Refs
Code
#%NASL_MIN_LEVEL 80900
##
# (C) Tenable, Inc.
#
# The descriptive text and package checks in this plugin were
# extracted from Amazon Linux 2 Security Advisory ALASOPENSSL-SNAPSAFE-2026-011.
##

include('compat.inc');

if (description)
{
  script_id(322026);
  script_version("1.1");
  script_set_attribute(attribute:"plugin_modification_date", value:"2026/06/22");

  script_cve_id(
    "CVE-2026-7383",
    "CVE-2026-9076",
    "CVE-2026-34180",
    "CVE-2026-42766",
    "CVE-2026-45447"
  );

  script_name(english:"Amazon Linux 2 : openssl-snapsafe, --advisory ALAS2OPENSSL-SNAPSAFE-2026-011 (ALASOPENSSL-SNAPSAFE-2026-011)");

  script_set_attribute(attribute:"synopsis", value:
"The remote Amazon Linux 2 host is missing a security update.");
  script_set_attribute(attribute:"description", value:
"The version of openssl-snapsafe installed on the remote host is prior to 1.0.2k-24. It is, therefore, affected by
multiple vulnerabilities as referenced in the ALAS2OPENSSL-SNAPSAFE-2026-011 advisory.

    Issue summary: Parsing a crafted DER-encoded ASN.1 structure with a primitiveelement whose content exceeds
    2 gigabytes in length may cause a heap bufferover-read on 64-bit Unix and Unix-like platforms.

    Impact summary: The heap buffer over-read may crash the application (Denial ofService) or to load into the
    decoded ASN.1 object contents of memory beyond theend of the input buffer.  More typically such ASN.1
    elements would instead betruncated.

    An integer truncation in OpenSSL's ASN.1 decoder causes the content length ofan ASN.1 primitive element to
    be mishandled when it exceeds 2 gigabytes. In theworst case the truncated length is treated as a request
    to scan the binarycontent for a terminating zero byte, possibly causing OpenSSL to read eitherless than or
    beyond the end of the allocated buffer.

    Applications that pass attacker-supplied data to d2i_X509(), d2i_PKCS7(), orany other d2i_* decoding
    function are affected. OpenSSL's own command-linetools are not vulnerable, as data read through the BIO
    layer is checked beforeit reaches the affected code. The issue only affects 64-bit Unix and Unix-
    likeplatforms; 32-bit platforms and 64-bit Windows are not affected.

    The FIPS modules in 4.0, 3.6, 3.5, 3.4 and 3.0 are not affected by this issue,as the affected code is
    outside the OpenSSL FIPS module boundary. (CVE-2026-34180)

    Issue summary: A specially crafted password-encrypted CMS messagecan trigger a NULL pointer dereference
    during CMS decryption.

    Impact summary: This NULL pointer dereference leads to an application crashand a Denial of Service.

    The CMS PasswordRecipientInfo.keyDerivationAlgorithm field is defined asOPTIONAL in the ASN.1
    specification and may therefore be absent in speciallycrafted inputs. During the password-based CMS
    decryption the OpenSSLCMS implementation dereferences this field without first checking whether itwas
    present.

    An attacker who supplies such a CMS message to an application performingpassword-based CMS decryption can
    trigger an application crash, leading toa Denial of Service.

    Applications that process password-encrypted CMS messages may be affected.

    The FIPS modules in 4.0, 3.6, 3.5, 3.4, and 3.0 are not affected by thisissue, as the affected code is
    outside the OpenSSL FIPS module boundary. (CVE-2026-42766)

    Issue summary: A specially crafted PKCS#7 or S/MIME signed message couldtrigger a use-after-free during
    PKCS#7 signature verification.

    Impact summary: A use-after-free may result in process crashes, heapcorruption, or potentially remote code
    execution.

    When processing a PKCS#7 or S/MIME signed message, if the SignedDatadigestAlgorithms field is present as
    an empty ASN.1 SET, OpenSSL mayincorrectly free a caller-owned BIO during PKCS7_verify(). A subsequentuse
    of the BIO by the calling application results in a use-after-freecondition.

    In the common case this occurs when the application later callsBIO_free() on the BIO originally passed to
    PKCS7_verify(). Dependingon allocator behavior and application-specific BIO usage patterns, thismay result
    in a crash or other memory corruption. In some applicationcontexts this may potentially be exploitable for
    remote code execution.

    Applications that process PKCS#7 or S/MIME signed messages using OpenSSLPKCS#7 APIs may be affected.
    Applications using the CMS APIs for thisprocessing are not affected.

    The FIPS modules in 4.0, 3.6, 3.5, 3.4, and 3.0 are not affected by thisissue, as the affected code is
    outside the OpenSSL FIPS module boundary. (CVE-2026-45447)

    Issue summary: A signed integer overflow when sizing the destinationbuffer for Unicode output in
    ASN1_mbstring_ncopy() can lead to a heapbuffer overflow.

    Impact summary: A heap buffer overflow may lead to a crash or possiblyattacker controlled code execution
    or other undefined behaviour.

    In ASN1_mbstring_copy() and ASN1_mbstring_ncopy() the destinationsize for Unicode output is computed in a
    signed int: by left shiftof the input character count for BMPSTRING (UTF-16) andUNIVERSALSTRING (UTF-32),
    and by summing per-character byte countsfor UTF8STRING. The calculation overflows when the input
    reachesaround 2^30 characters. In the worst case (UNIVERSALSTRING at 2^30characters) the size wraps to
    zero, OPENSSL_malloc(1) is called, andthe subsequent character copy writes several gigabytes past theone-
    byte allocation.

    X.509 certificate processing routes through ASN1_STRING_set_by_NID(),whose DIRSTRING_TYPE mask excludes
    UNIVERSALSTRING and whose per-NIDsize limits cap the input length; no network protocol orcertificate-
    handling path in OpenSSL exercises the overflow.Triggering the bug requires an application that
    callsASN1_mbstring_copy() or ASN1_mbstring_ncopy() directly, or registersa custom string type via
    ASN1_STRING_TABLE_add(), withattacker-controlled input on the order of half a gigabyte or more.For these
    reasons this issue was assigned Low severity.

    The FIPS modules in 4.0, 3.6, 3.5, 3.4 and 3.0 are not affected bythis issue, as the affected code is
    outside the OpenSSL FIPS moduleboundary. (CVE-2026-7383)

    Issue summary: When CMS password-based decryption (RFC 3211 / PWRI key unwrap)processes attacker-supplied
    CMS data, an attacker-chosen stream-mode KEKcipher can trigger a heap out-of-bounds read in
    kek_unwrap_key().

    Impact summary: A heap buffer over-read may trigger a crash which leads toDenial of Service for an
    application if the input buffer ends at a memorypage boundary and the following page is unmapped. There is
    no informationdisclosure as the over-read bytes are not revealed to the attacker.

    The key unwrapping function performs a check-byte test as specified in theRFC that reads 7 bytes from a
    heap allocation that is based on the wrappedkey length from the message. There is a minimum length check
    based on theblock length of the wrapping cipher. However the cipher is selected froman OID carried in the
    attacker's PWRI keyEncryptionAlgorithm with norequirement that the cipher be a block cipher. When an
    attacker selectsa stream-mode cipher the guard will be ineffective and the allocated buffercontaining the
    unwrapped key can be too small to fit the check-bytesspecified in the RFC and a buffer over-read can
    happen.

    Applications calling CMS_decrypt() or CMS_decrypt_set1_password()(equivalently openssl cms -decrypt
    -pwri_password ...) on untrusted CMSdata are vulnerable to this issue. No password knowledge is required:
    theover-read happens during the unwrap attempt before any authenticationsucceeds.

    The over-read is limited to a few bytes and is not written to output, sothere is no information
    disclosure. Triggering a crash requires theallocation to border unmapped memory, which is unlikely with
    the normalallocator.

    The FIPS modules are not affected by this issue. (CVE-2026-9076)

Tenable has extracted the preceding description block directly from the tested product 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://alas.aws.amazon.com//AL2/ALAS2OPENSSL-SNAPSAFE-2026-011.html");
  script_set_attribute(attribute:"see_also", value:"https://alas.aws.amazon.com/faqs.html");
  script_set_attribute(attribute:"see_also", value:"https://explore.alas.aws.amazon.com/CVE-2026-34180.html");
  script_set_attribute(attribute:"see_also", value:"https://explore.alas.aws.amazon.com/CVE-2026-42766.html");
  script_set_attribute(attribute:"see_also", value:"https://explore.alas.aws.amazon.com/CVE-2026-45447.html");
  script_set_attribute(attribute:"see_also", value:"https://explore.alas.aws.amazon.com/CVE-2026-7383.html");
  script_set_attribute(attribute:"see_also", value:"https://explore.alas.aws.amazon.com/CVE-2026-9076.html");
  script_set_attribute(attribute:"solution", value:
"Run 'yum update openssl-snapsafe' or
  or 'yum update --advisory ALAS2OPENSSL-SNAPSAFE-2026-011' to update your system.");
  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:U/RL:OF/RC:C");
  script_set_cvss3_base_vector("CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H");
  script_set_cvss3_temporal_vector("CVSS:3.0/E:U/RL:O/RC:C");
  script_set_attribute(attribute:"cvss_score_source", value:"CVE-2026-45447");

  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/06/09");
  script_set_attribute(attribute:"patch_publication_date", value:"2026/06/22");
  script_set_attribute(attribute:"plugin_publication_date", value:"2026/06/22");

  script_set_attribute(attribute:"plugin_type", value:"local");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:amazon:linux:openssl-snapsafe");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:amazon:linux:openssl-snapsafe-debuginfo");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:amazon:linux:openssl-snapsafe-devel");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:amazon:linux:openssl-snapsafe-libs");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:amazon:linux:openssl-snapsafe-perl");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:amazon:linux:openssl-snapsafe-static");
  script_set_attribute(attribute:"cpe", value:"cpe:/o:amazon:linux:2");
  script_set_attribute(attribute:"generated_plugin", value:"current");
  script_end_attributes();

  script_category(ACT_GATHER_INFO);
  script_family(english:"Amazon 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_info.nasl");
  script_require_keys("Host/local_checks_enabled", "Host/AmazonLinux/release", "Host/AmazonLinux/rpm-list");

  exit(0);
}

include("rpm2.inc");

if (!get_kb_item("Host/local_checks_enabled")) audit(AUDIT_LOCAL_CHECKS_NOT_ENABLED);

var alas_release = get_kb_item("Host/AmazonLinux/release");
if (isnull(alas_release) || !strlen(alas_release)) audit(AUDIT_OS_NOT, "Amazon Linux");
var os_ver = pregmatch(pattern: "^AL(A|\d+|-\d+)", string:alas_release);
if (isnull(os_ver)) audit(AUDIT_UNKNOWN_APP_VER, "Amazon Linux");
os_ver = os_ver[1];
if (os_ver != "2")
{
  if (os_ver == 'A') os_ver = 'AMI';
  audit(AUDIT_OS_NOT, "Amazon Linux 2", "Amazon Linux " + os_ver);
}

if (!get_kb_item("Host/AmazonLinux/rpm-list")) audit(AUDIT_PACKAGE_LIST_MISSING);

var REPOS_FOUND = TRUE;
var extras_list = get_kb_item("Host/AmazonLinux/extras_label_list");
if (isnull(extras_list)) REPOS_FOUND = FALSE;
var repository = '"amzn2extra-openssl-snapsafe"';
if (REPOS_FOUND && (repository >!< extras_list)) exit(0, AFFECTED_REPO_NOT_ENABLED);

var pkgs = [
    {'reference':'openssl-snapsafe-1.0.2k-24.amzn2.0.21', 'cpu':'aarch64', 'release':'AL2', 'rpm_spec_vers_cmp':TRUE},
    {'reference':'openssl-snapsafe-1.0.2k-24.amzn2.0.21', 'cpu':'i686', 'release':'AL2', 'rpm_spec_vers_cmp':TRUE},
    {'reference':'openssl-snapsafe-1.0.2k-24.amzn2.0.21', 'cpu':'x86_64', 'release':'AL2', 'rpm_spec_vers_cmp':TRUE},
    {'reference':'openssl-snapsafe-debuginfo-1.0.2k-24.amzn2.0.21', 'cpu':'aarch64', 'release':'AL2', 'rpm_spec_vers_cmp':TRUE},
    {'reference':'openssl-snapsafe-debuginfo-1.0.2k-24.amzn2.0.21', 'cpu':'i686', 'release':'AL2', 'rpm_spec_vers_cmp':TRUE},
    {'reference':'openssl-snapsafe-debuginfo-1.0.2k-24.amzn2.0.21', 'cpu':'x86_64', 'release':'AL2', 'rpm_spec_vers_cmp':TRUE},
    {'reference':'openssl-snapsafe-devel-1.0.2k-24.amzn2.0.21', 'cpu':'aarch64', 'release':'AL2', 'rpm_spec_vers_cmp':TRUE},
    {'reference':'openssl-snapsafe-devel-1.0.2k-24.amzn2.0.21', 'cpu':'i686', 'release':'AL2', 'rpm_spec_vers_cmp':TRUE},
    {'reference':'openssl-snapsafe-devel-1.0.2k-24.amzn2.0.21', 'cpu':'x86_64', 'release':'AL2', 'rpm_spec_vers_cmp':TRUE},
    {'reference':'openssl-snapsafe-libs-1.0.2k-24.amzn2.0.21', 'cpu':'aarch64', 'release':'AL2', 'rpm_spec_vers_cmp':TRUE},
    {'reference':'openssl-snapsafe-libs-1.0.2k-24.amzn2.0.21', 'cpu':'i686', 'release':'AL2', 'rpm_spec_vers_cmp':TRUE},
    {'reference':'openssl-snapsafe-libs-1.0.2k-24.amzn2.0.21', 'cpu':'x86_64', 'release':'AL2', 'rpm_spec_vers_cmp':TRUE},
    {'reference':'openssl-snapsafe-perl-1.0.2k-24.amzn2.0.21', 'cpu':'aarch64', 'release':'AL2', 'rpm_spec_vers_cmp':TRUE},
    {'reference':'openssl-snapsafe-perl-1.0.2k-24.amzn2.0.21', 'cpu':'i686', 'release':'AL2', 'rpm_spec_vers_cmp':TRUE},
    {'reference':'openssl-snapsafe-perl-1.0.2k-24.amzn2.0.21', 'cpu':'x86_64', 'release':'AL2', 'rpm_spec_vers_cmp':TRUE},
    {'reference':'openssl-snapsafe-static-1.0.2k-24.amzn2.0.21', 'cpu':'aarch64', 'release':'AL2', 'rpm_spec_vers_cmp':TRUE},
    {'reference':'openssl-snapsafe-static-1.0.2k-24.amzn2.0.21', 'cpu':'i686', 'release':'AL2', 'rpm_spec_vers_cmp':TRUE},
    {'reference':'openssl-snapsafe-static-1.0.2k-24.amzn2.0.21', 'cpu':'x86_64', 'release':'AL2', 'rpm_spec_vers_cmp':TRUE}
];

var flag = 0;
foreach var package_array ( pkgs ) {
  var reference = NULL;
  var _release = NULL;
  var sp = NULL;
  var _cpu = NULL;
  var el_string = NULL;
  var rpm_spec_vers_cmp = NULL;
  var epoch = NULL;
  var allowmaj = NULL;
  var exists_check = NULL;
  var cves = NULL;
  if (!empty_or_null(package_array['reference'])) reference = package_array['reference'];
  if (!empty_or_null(package_array['release'])) _release = package_array['release'];
  if (!empty_or_null(package_array['sp'])) sp = package_array['sp'];
  if (!empty_or_null(package_array['cpu'])) _cpu = package_array['cpu'];
  if (!empty_or_null(package_array['el_string'])) el_string = package_array['el_string'];
  if (!empty_or_null(package_array['rpm_spec_vers_cmp'])) rpm_spec_vers_cmp = package_array['rpm_spec_vers_cmp'];
  if (!empty_or_null(package_array['epoch'])) epoch = package_array['epoch'];
  if (!empty_or_null(package_array['allowmaj'])) allowmaj = package_array['allowmaj'];
  if (!empty_or_null(package_array['exists_check'])) exists_check = package_array['exists_check'];
  if (!empty_or_null(package_array['cves'])) cves = package_array['cves'];
  if (reference && _release && (!exists_check || rpm_exists(release:_release, rpm:exists_check))) {
    if (rpm_check(release:_release, 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)
{
  var extra = rpm_report_get();
  if (!REPOS_FOUND) extra = rpm_report_get() + report_repo_caveat();
  security_report_v4(
      port       : 0,
      severity   : SECURITY_HOLE,
      extra      : extra
  );
  exit(0);
}
else
{
  var tested = pkg_tests_get();
  if (tested) audit(AUDIT_PACKAGE_NOT_AFFECTED, tested);
  else audit(AUDIT_PACKAGE_NOT_INSTALLED, "openssl-snapsafe / openssl-snapsafe-debuginfo / openssl-snapsafe-devel / etc");
}

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

22 Jun 2026 00:00Current
6.4Medium risk
Vulners AI Score6.4
CVSS 3.18.8
EPSS0.02268
SSVC
2