Lucene search
+L

CentOS Linux 7 [TuxCare] Security Update: gstreamer1-plugins-good Multiple Vulnerabilities (CENTOS7:CLSA-2026:1792021687)

🗓️ 20 Oct 2026 00:00:00Reported by TenableType 
nessus
 nessus
🔗 www.tenable.com👁 1 Views

Multiple vulnerabilities in gstreamer1-plugins-good allow code execution or memory overwrite.

Related
Refs
Code
#%NASL_MIN_LEVEL 80900
##
# (C) Tenable, Inc.
##

include('compat.inc');

if (description)
{
  script_id(367930);
  script_version("1.1");
  script_set_attribute(attribute:"plugin_modification_date", value:"2026/10/20");

  script_cve_id(
    "CVE-2024-47540",
    "CVE-2024-47606",
    "CVE-2024-47613",
    "CVE-2026-53705"
  );
  script_xref(name:"CLSA", value:"2026:1792021687");

  script_name(english:"CentOS Linux 7 [TuxCare] Security Update: gstreamer1-plugins-good Multiple Vulnerabilities (CENTOS7:CLSA-2026:1792021687)");

  script_set_attribute(attribute:"synopsis", value:
"The CentOS Linux host is missing one or more security updates.");
  script_set_attribute(attribute:"description", value:
"The CentOS Linux 7 host has a package installed that is affected by multiple vulnerabilities as referenced in the
TuxCare CENTOS7:CLSA-2026:1792021687 advisory.

  - GStreamer is a library for constructing graphs of media-handling components. An uninitialized stack
    variable vulnerability has been identified in the gst_matroska_demux_add_wvpk_header function within
    matroska-demux.c. When size < 4, the program calls gst_buffer_unmap with an uninitialized map variable.
    Then, in the gst_memory_unmap function, the program will attempt to unmap the buffer using the
    uninitialized map variable, causing a function pointer hijack, as it will jump to
    mem->allocator->mem_unmap_full or mem->allocator->mem_unmap. This vulnerability could allow an attacker to
    hijack the execution flow, potentially leading to code execution. This vulnerability is fixed in 1.24.10.
    (CVE-2024-47540)

  - GStreamer is a library for constructing graphs of media-handling components. An integer underflow has been
    detected in the function qtdemux_parse_theora_extension within qtdemux.c. The vulnerability occurs due to
    an underflow of the gint size variable, which causes size to hold a large unintended value when cast to an
    unsigned integer. This 32-bit negative value is then cast to a 64-bit unsigned integer
    (0xfffffffffffffffa) in a subsequent call to gst_buffer_new_and_alloc. The function
    gst_buffer_new_allocate then attempts to allocate memory, eventually calling _sysmem_new_block. The
    function _sysmem_new_block adds alignment and header size to the (unsigned) size, causing the overflow of
    the 'slice_size' variable. As a result, only 0x89 bytes are allocated, despite the large input size. When
    the following memcpy call occurs in gst_buffer_fill, the data from the input file will overwrite the
    content of the GstMapInfo info structure. Finally, during the call to gst_memory_unmap, the overwritten
    memory may cause a function pointer hijack, as the mem->allocator->mem_unmap_full function is called with
    a corrupted pointer. This function pointer overwrite could allow an attacker to alter the execution flow
    of the program, leading to arbitrary code execution. This vulnerability is fixed in 1.24.10.
    (CVE-2024-47606)

  - GStreamer is a library for constructing graphs of media-handling components. A null pointer dereference
    vulnerability has been identified in `gst_gdk_pixbuf_dec_flush` within `gstgdkpixbufdec.c`. This function
    invokes `memcpy`, using `out_pix` as the destination address. `out_pix` is expected to point to the frame
    0 from the frame structure, which is read from the input file. However, in certain situations, it can
    points to a NULL frame, causing the subsequent call to `memcpy` to attempt writing to the null address
    (0x00), leading to a null pointer dereference. This vulnerability can result in a Denial of Service (DoS)
    by triggering a segmentation fault (SEGV). This vulnerability is fixed in 1.24.10. (CVE-2024-47613)

  - A flaw was found in GStreamer's WavPack audio decoder in gst-plugins-good. When processing a specially
    crafted WavPack file, an integer overflow in the buffer size calculation (4 * block_samples * channels) in
    gst_wavpack_dec_handle_frame() causes a very small heap allocation. The WavPack library then writes
    decoded audio samples far beyond the allocated buffer, resulting in heap memory corruption. This affects
    both 32-bit and 64-bit systems since the arithmetic is performed in 32-bit integers before promotion to
    the allocation size type. A remote attacker could use this flaw to crash an application or potentially
    execute arbitrary code by convincing a user to open a malicious WavPack audio file. (CVE-2026-53705)

Note that Nessus has not tested for these issues but has instead relied only on the application's self-reported version
number.");
  # https://security.tuxcare.com/csaf/v2/els_os/centos7els/advisories/2026/clsa-2026_1792021687.json
  script_set_attribute(attribute:"see_also", value:"http://www.nessus.org/u?09f33f66");
  script_set_attribute(attribute:"see_also", value:"https://cve.tuxcare.com/els/releases/CLSA-2026:1792021687");
  script_set_attribute(attribute:"solution", value:
"Update the affected gstreamer1-plugins-good package based on the guidance in TuxCare advisory
CENTOS7:CLSA-2026:1792021687.");
  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:N/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:"cvss4_vector", value:"CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N");
  script_set_attribute(attribute:"cvss4_threat_vector", value:"CVSS:4.0/E:U");
  script_set_attribute(attribute:"cvss_score_source", value:"CVE-2024-47613");

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

  script_set_attribute(attribute:"vuln_publication_date", value:"2024/12/06");
  script_set_attribute(attribute:"patch_publication_date", value:"2026/10/14");
  script_set_attribute(attribute:"plugin_publication_date", value:"2026/10/20");

  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:"CentOS 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/OS/extended-third-party", "Host/local_checks_enabled", "Host/CentOS/release", "Host/CentOS/rpm-list");

  exit(0);
}
include('rpm2.inc');

var third_party_support = get_kb_item('Host/OS/extended-third-party');
if (empty_or_null(third_party_support) || third_party_support != 'TuxCare') exit(0, 'TuxCare support not enabled.');

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) || 'CentOS Linux' >!< os_product) audit(AUDIT_OS_NOT, 'CentOS Linux');
var os_version = get_kb_item('installed_os/local/SSH/0/version');
if (isnull(os_version)) audit(AUDIT_UNKNOWN_APP_VER, 'CentOS Linux');
if (! preg(pattern:"^7([^0-9]|$)", string:os_version)) audit(AUDIT_OS_NOT, 'CentOS Linux 7', 'CentOS Linux ' + os_version);

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

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


var constraints = [
  {
    'release': '7',
    'pkgs': [
      {'reference':'gstreamer1-plugins-good-1.10.4-2.0.5.el7.tuxcare.els1', 'cpu':'aarch64', 'rpm_spec_vers_cmp':TRUE},
      {'reference':'gstreamer1-plugins-good-1.10.4-2.0.5.el7.tuxcare.els1', 'cpu':'i686', 'rpm_spec_vers_cmp':TRUE},
      {'reference':'gstreamer1-plugins-good-1.10.4-2.0.5.el7.tuxcare.els1', '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_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, 'gstreamer1-plugins-good');
}

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

20 Oct 2026 00:00Current
7.9High risk
Vulners AI Score7.9
CVSS 3.17.6 - 9.8
CVSS 48.6
EPSS0.01728
SSVC
1