openSUSE 16: jline3 / jline3-builtins / jline3-console / jline3-console-ui / etc (openSUSE-SU-2026:22009-1)
#%NASL_MIN_LEVEL 80900
##
# (C) Tenable, Inc.
#
# The package checks in this plugin were extracted from
# openSUSE Security Update openSUSE-SU-2026:22009-1. The text itself
# is copyright (C) SUSE.
##
include('compat.inc');
if (description)
{
script_id(362893);
script_version("1.1");
script_set_attribute(attribute:"plugin_modification_date", value:"2026/10/04");
script_name(english:"openSUSE 16: jline3 / jline3-builtins / jline3-console / jline3-console-ui / etc (openSUSE-SU-2026:22009-1)");
script_set_attribute(attribute:"synopsis", value:
"The remote openSUSE host is missing a security update.");
script_set_attribute(attribute:"description", value:
"The remote openSUSE 16 host has packages installed that are affected by a vulnerability as referenced in the openSUSE-
SU-2026:22009-1 advisory.
This update for jline3 fixes the following issue:
Update to upstream version 3.30.17:
* Security Fixes
+ Native Stack Buffer Overflow in Public INPUT_RECORD.memmove
JNI Method (Windows) (GHSA-6r3w-6jpj-x5w6)
+ Authenticated SSH Shell Channel Resource Leak via Null or
Non-Numeric PTY Dimensions (GHSA-7h86-pjwh-gpqj)
+ Authenticated SSH DoS via Unbounded Window-Change Terminal
Geometry (GHSA-m935-wqpj-pvp3)
+ TCP Socket File Descriptor Leak When Maximum Connections
Reached (GHSA-c87g-867h-cqr6)
* Bug Fixes
+ strip control characters from file names in posix builtins
+ bound !# history expansion to prevent exponential blowup
+ verify server host keys in the ssh client builtin
+ address remaining security vulnerabilities reported by
AFINE/CERT.PL
+ backport security fixes from master
+ backport security fixes to 3.x (path traversal + DSR plain
text)
+ strip control characters from ssh banner and prompts
* Dependency updates
+ bump com.diffplug.spotless:spotless-maven-plugin from 3.8.0 to
3.10.2
+ bump slf4j.version from 2.0.18 to 2.0.19
+ bump org.apache.maven.plugins:maven-surefire-plugin from 3.5.6
to 3.6.0
+ bump org.apache.maven.plugins:maven-compiler-plugin from
3.15.0 to 3.16.0
+ bump org.apache.felix:maven-bundle-plugin from 6.0.2 to 6.1.2
+ bump actions/setup-java from 5 to 6.0.0
+ bump org.graalvm.sdk:graal-sdk from 25.1.3 to 25.3.4.1
+ bump com.mycila:license-maven-plugin from 5.0.0 to 5.1.2
+ bump org.easymock:easymock from 5.6.0 to 5.7.0
+ bump com.google.jimfs:jimfs from 1.3.1 to 1.3.2
+ bump org.apache.maven.wrapper:maven-wrapper from 3.3.2 to
3.3.4
+ bump org.apache.maven:apache-maven from 4.0.0-rc-3 to
4.0.0-rc-6
+ bump eu.maveniverse.maven.njord:extension3 from 0.9.9 to
0.9.10
+ bump com.palantir.javaformat:palantir-java-format from 2.96.0
to 2.97.0
+ bump release-drafter/release-drafter from 7.6.0 to 7.7.0
+ bump groovy.version from 4.0.32 to 4.0.33
+ bump release-drafter/release-drafter from 7 to 7.6.0
+ bump org.apache.maven.plugins:maven-jar-plugin from 3.5.0 to
3.5.1
- Update to upstream version 3.30.16
* bugfix release with security hardening, SSH agent forwarding
fix, and terminal compatibility improvements.
* Breaking Changes
+ SSH agent forwarding is no longer enabled by default;
pass -A to explicitly request it
+ reject overlong hex components in OSC color responses
+ strip OSC and other escape sequences in ansiAppend
+ search multiple lib paths for versioned libutil.so
+ use Path.resolve instead of URI.resolve in cat and sort to
prevent SSRF
+ check closed flag in PtyInputStream to prevent hang on empty
input
+ confine ConfigurationPath lookups to the config directory
+ disable Read File command in nano restricted mode
+ drain buffered data before EOF in NonBlockingPumpInputStream
+ look up openpty in libc.so.6 for glibc 2.34+
+ guard styleMatches and highlighter rules against ReDoS
+ backport telnet DoS mitigations (GHSA-47qp, GHSA-2r2c)
+ propagate EOF in PtyInputStream to avoid infinite loop
+ bump org.apache.ivy:ivy from 2.5.3 to 2.6.0
+ bump actions/setup-node from 6 to 7
+ bump com.palantir.javaformat:palantir-java-format from 2.94.0
to 2.96.0
+ bump sshd.version from 2.18.0 to 2.19.0
+ bump org.codehaus.gmavenplus:gmavenplus-plugin from 5.0.0 to
5.1.0
+ bump org.graalvm.sdk:graal-sdk from 25.0.3 to 25.1.3
+ bump com.diffplug.spotless:spotless-maven-plugin
Tenable has extracted the preceding description block directly from the SUSE security advisory.
Note that Nessus has not tested for this issue but has instead relied only on the application's self-reported version
number.");
script_set_attribute(attribute:"solution", value:
"Update the affected packages.");
script_set_attribute(attribute:"risk_factor", value:"Medium");
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/10/01");
script_set_attribute(attribute:"patch_publication_date", value:"2026/10/01");
script_set_attribute(attribute:"plugin_publication_date", value:"2026/10/04");
script_set_attribute(attribute:"plugin_type", value:"local");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:jline3");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:jline3-builtins");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:jline3-console");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:jline3-console-ui");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:jline3-curses");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:jline3-jansi");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:jline3-jansi-core");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:jline3-javadoc");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:jline3-native");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:jline3-reader");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:jline3-remote-telnet");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:jline3-style");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:jline3-terminal");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:jline3-terminal-jansi");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:jline3-terminal-jna");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:jline3-terminal-jni");
script_set_attribute(attribute:"cpe", value:"cpe:/o:novell:opensuse:16.0");
script_set_attribute(attribute:"generated_plugin", value:"current");
script_end_attributes();
script_category(ACT_GATHER_INFO);
script_family(english:"SuSE 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/cpu", "Host/SuSE/release", "Host/SuSE/rpm-list");
exit(0);
}
include('rpm.inc');
if (!get_kb_item('Host/local_checks_enabled')) audit(AUDIT_LOCAL_CHECKS_NOT_ENABLED);
var os_release = get_kb_item('Host/SuSE/release');
if (isnull(os_release) || os_release =~ "^(SLED|SLES)") audit(AUDIT_OS_NOT, 'openSUSE');
var _os_ver = pregmatch(pattern: "^SUSE([\d.]+)", string:os_release);
if (isnull(_os_ver)) audit(AUDIT_UNKNOWN_APP_VER, 'openSUSE');
_os_ver = _os_ver[1];
if (os_release !~ "^(SUSE16\.0)$") audit(AUDIT_OS_RELEASE_NOT, 'openSUSE', '16.0', os_release);
if (!get_kb_item("Host/SuSE/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, 'openSUSE ' + _os_ver, cpu);
var pkgs = [
{'reference':'jline3-3.30.17-160000.1.1', 'release':'SUSE16.0', 'rpm_spec_vers_cmp':TRUE},
{'reference':'jline3-builtins-3.30.17-160000.1.1', 'release':'SUSE16.0', 'rpm_spec_vers_cmp':TRUE},
{'reference':'jline3-console-3.30.17-160000.1.1', 'release':'SUSE16.0', 'rpm_spec_vers_cmp':TRUE},
{'reference':'jline3-console-ui-3.30.17-160000.1.1', 'release':'SUSE16.0', 'rpm_spec_vers_cmp':TRUE},
{'reference':'jline3-curses-3.30.17-160000.1.1', 'release':'SUSE16.0', 'rpm_spec_vers_cmp':TRUE},
{'reference':'jline3-jansi-3.30.17-160000.1.1', 'release':'SUSE16.0', 'rpm_spec_vers_cmp':TRUE},
{'reference':'jline3-jansi-core-3.30.17-160000.1.1', 'release':'SUSE16.0', 'rpm_spec_vers_cmp':TRUE},
{'reference':'jline3-javadoc-3.30.17-160000.1.1', 'release':'SUSE16.0', 'rpm_spec_vers_cmp':TRUE},
{'reference':'jline3-native-3.30.17-160000.1.1', 'release':'SUSE16.0', 'rpm_spec_vers_cmp':TRUE},
{'reference':'jline3-reader-3.30.17-160000.1.1', 'release':'SUSE16.0', 'rpm_spec_vers_cmp':TRUE},
{'reference':'jline3-remote-telnet-3.30.17-160000.1.1', 'release':'SUSE16.0', 'rpm_spec_vers_cmp':TRUE},
{'reference':'jline3-style-3.30.17-160000.1.1', 'release':'SUSE16.0', 'rpm_spec_vers_cmp':TRUE},
{'reference':'jline3-terminal-3.30.17-160000.1.1', 'release':'SUSE16.0', 'rpm_spec_vers_cmp':TRUE},
{'reference':'jline3-terminal-jansi-3.30.17-160000.1.1', 'release':'SUSE16.0', 'rpm_spec_vers_cmp':TRUE},
{'reference':'jline3-terminal-jna-3.30.17-160000.1.1', 'release':'SUSE16.0', 'rpm_spec_vers_cmp':TRUE},
{'reference':'jline3-terminal-jni-3.30.17-160000.1.1', 'release':'SUSE16.0', 'rpm_spec_vers_cmp':TRUE}
];
var flag = 0;
foreach package_array ( pkgs ) {
var reference = NULL;
var _release = NULL;
var _cpu = NULL;
var rpm_spec_vers_cmp = 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['cpu'])) cpu = package_array['cpu'];
if (!empty_or_null(package_array['rpm_spec_vers_cmp'])) rpm_spec_vers_cmp = package_array['rpm_spec_vers_cmp'];
if (reference && _release) {
if (rpm_check(release:_release, cpu:_cpu, reference:reference, rpm_spec_vers_cmp:rpm_spec_vers_cmp)) 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, 'jline3 / jline3-builtins / jline3-console / jline3-console-ui / 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
04 Oct 2026 00:00Current
6.1Medium risk
Vulners AI Score6.1