Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add: nasl function support for IPv6 packet forgery, TCP and UDP over IPv6 and ICMPv6 #1661

Open
wants to merge 8 commits into
base: main
Choose a base branch
from

Conversation

jjnicola
Copy link
Member

@jjnicola jjnicola commented Jun 12, 2024

What:
Add: nasl function support for IPv6 packet forgery, TCP and UDP over IPv6 and ICMPv6
Jira: SC-1096

Why:

How:

Checklist:

  • Tests
  • PR merge commit message adjusted

@jjnicola jjnicola force-pushed the packet-forgery-ipv6 branch from e6c6cd6 to 13a7fc8 Compare June 13, 2024 09:36
@github-actions github-actions bot added the minor_release creates a minor release label Jun 13, 2024
Copy link

github-actions bot commented Jun 13, 2024

🔍 Vulnerabilities of ghcr.io/greenbone/openvas-scanner:pr-1661

📦 Image Reference ghcr.io/greenbone/openvas-scanner:pr-1661
digestsha256:c213edb64058e381d92a5c0d98109a9a8b5d95efd37d1471dc0b18c1061d4450
vulnerabilitiescritical: 0 high: 3 medium: 0 low: 49 unspecified: 1
size121 MB
packages261
📦 Base Image debian:stable-20250224-slim
also known as
  • stable-slim
digestsha256:068a6b5298e3d27d1fcfbf71209831568be8516a030a41ae13dacb3e1f42feb1
vulnerabilitiescritical: 0 high: 0 medium: 0 low: 23
critical: 0 high: 3 medium: 0 low: 2 libxml2 2.9.14+dfsg-1.3~deb12u1 (deb)

pkg:deb/debian/libxml2@2.9.14%2Bdfsg-1.3~deb12u1?os_distro=bookworm&os_name=debian&os_version=12

high : CVE--2022--49043

Affected range>=2.9.14+dfsg-1.3~deb12u1
Fixed versionNot Fixed
EPSS Score0.04%
EPSS Percentile12th percentile
Description

xmlXIncludeAddNode in xinclude.c in libxml2 before 2.11.0 has a use-after-free.


[experimental] - libxml2 2.12.3+dfsg-0exp1

high : CVE--2025--24928

Affected range>=2.9.14+dfsg-1.3~deb12u1
Fixed versionNot Fixed
EPSS Score0.04%
EPSS Percentile12th percentile
Description

libxml2 before 2.12.10 and 2.13.x before 2.13.6 has a stack-based buffer overflow in xmlSnprintfElements in valid.c. To exploit this, DTD validation must occur for an untrusted document or untrusted DTD. NOTE: this is similar to CVE-2017-9047.


high : CVE--2024--56171

Affected range>=2.9.14+dfsg-1.3~deb12u1
Fixed versionNot Fixed
EPSS Score0.04%
EPSS Percentile12th percentile
Description

libxml2 before 2.12.10 and 2.13.x before 2.13.6 has a use-after-free in xmlSchemaIDCFillNodeTables and xmlSchemaBubbleIDCNodeTables in xmlschemas.c. To exploit this, a crafted XML document must be validated against an XML schema with certain identity constraints, or a crafted XML schema must be used.


low : CVE--2025--27113

Affected range>=2.9.14+dfsg-1.3~deb12u1
Fixed versionNot Fixed
EPSS Score0.04%
EPSS Percentile12th percentile
Description

libxml2 before 2.12.10 and 2.13.x before 2.13.6 has a NULL pointer dereference in xmlPatMatch in pattern.c.


low : CVE--2024--34459

Affected range>=2.9.14+dfsg-1.3~deb12u1
Fixed versionNot Fixed
EPSS Score0.04%
EPSS Percentile13th percentile
Description

An issue was discovered in xmllint (from libxml2) before 2.11.8 and 2.12.x before 2.12.7. Formatting error messages with xmllint --htmlout can result in a buffer over-read in xmlHTMLPrintFileContext in xmllint.c.


critical: 0 high: 0 medium: 0 low: 7 glibc 2.36-9+deb12u9 (deb)

pkg:deb/debian/glibc@2.36-9%2Bdeb12u9?os_distro=bookworm&os_name=debian&os_version=12

low : CVE--2019--9192

Affected range>=2.36-9+deb12u9
Fixed versionNot Fixed
EPSS Score0.10%
EPSS Percentile43rd percentile
Description

In the GNU C Library (aka glibc or libc6) through 2.29, check_dst_limits_calc_pos_1 in posix/regexec.c has Uncontrolled Recursion, as demonstrated by '(|)(\1\1)*' in grep, a different issue than CVE-2018-20796. NOTE: the software maintainer disputes that this is a vulnerability because the behavior occurs only with a crafted pattern


low : CVE--2019--1010025

Affected range>=2.36-9+deb12u9
Fixed versionNot Fixed
EPSS Score0.35%
EPSS Percentile72nd percentile
Description

GNU Libc current is affected by: Mitigation bypass. The impact is: Attacker may guess the heap addresses of pthread_created thread. The component is: glibc. NOTE: the vendor's position is "ASLR bypass itself is not a vulnerability.


low : CVE--2019--1010024

Affected range>=2.36-9+deb12u9
Fixed versionNot Fixed
EPSS Score2.33%
EPSS Percentile90th percentile
Description

GNU Libc current is affected by: Mitigation bypass. The impact is: Attacker may bypass ASLR using cache of thread stack and heap. The component is: glibc. NOTE: Upstream comments indicate "this is being treated as a non-security bug and no real threat.


low : CVE--2019--1010023

Affected range>=2.36-9+deb12u9
Fixed versionNot Fixed
EPSS Score0.84%
EPSS Percentile82nd percentile
Description

GNU Libc current is affected by: Re-mapping current loaded library with malicious ELF file. The impact is: In worst case attacker may evaluate privileges. The component is: libld. The attack vector is: Attacker sends 2 ELF files to victim and asks to run ldd on it. ldd execute code. NOTE: Upstream comments indicate "this is being treated as a non-security bug and no real threat.


low : CVE--2019--1010022

Affected range>=2.36-9+deb12u9
Fixed versionNot Fixed
EPSS Score0.59%
EPSS Percentile79th percentile
Description

GNU Libc current is affected by: Mitigation bypass. The impact is: Attacker may bypass stack guard protection. The component is: nptl. The attack vector is: Exploit stack buffer overflow vulnerability and use this bypass vulnerability to bypass stack guard. NOTE: Upstream comments indicate "this is being treated as a non-security bug and no real threat.


low : CVE--2018--20796

Affected range>=2.36-9+deb12u9
Fixed versionNot Fixed
EPSS Score0.30%
EPSS Percentile69th percentile
Description

In the GNU C Library (aka glibc or libc6) through 2.29, check_dst_limits_calc_pos_1 in posix/regexec.c has Uncontrolled Recursion, as demonstrated by '(\227|)(\1\1|t1|\\2537)+' in grep.


low : CVE--2010--4756

Affected range>=2.36-9+deb12u9
Fixed versionNot Fixed
EPSS Score0.88%
EPSS Percentile83rd percentile
Description

The glob implementation in the GNU C Library (aka glibc or libc6) allows remote authenticated users to cause a denial of service (CPU and memory consumption) via crafted glob expressions that do not match any pathnames, as demonstrated by glob expressions in STAT commands to an FTP daemon, a different vulnerability than CVE-2010-2632.


  • glibc (unimportant)
  • eglibc (unimportant)
    That's standard POSIX behaviour implemented by (e)glibc. Applications using
    glob need to impose limits for themselves
critical: 0 high: 0 medium: 0 low: 5 pcre3 2:8.39-15 (deb)

pkg:deb/debian/pcre3@2:8.39-15?os_distro=bookworm&os_name=debian&os_version=12

low : CVE--2019--20838

Affected range>=2:8.39-15
Fixed versionNot Fixed
EPSS Score0.58%
EPSS Percentile78th percentile
Description

libpcre in PCRE before 8.43 allows a subject buffer over-read in JIT when UTF is disabled, and \X or \R has more than one fixed quantifier, a related issue to CVE-2019-20454.


low : CVE--2017--7246

Affected range>=2:8.39-15
Fixed versionNot Fixed
EPSS Score0.65%
EPSS Percentile80th percentile
Description

Stack-based buffer overflow in the pcre32_copy_substring function in pcre_get.c in libpcre1 in PCRE 8.40 allows remote attackers to cause a denial of service (WRITE of size 268) or possibly have unspecified other impact via a crafted file.


low : CVE--2017--7245

Affected range>=2:8.39-15
Fixed versionNot Fixed
EPSS Score0.65%
EPSS Percentile80th percentile
Description

Stack-based buffer overflow in the pcre32_copy_substring function in pcre_get.c in libpcre1 in PCRE 8.40 allows remote attackers to cause a denial of service (WRITE of size 4) or possibly have unspecified other impact via a crafted file.


low : CVE--2017--16231

Affected range>=2:8.39-15
Fixed versionNot Fixed
EPSS Score0.11%
EPSS Percentile46th percentile
Description

In PCRE 8.41, after compiling, a pcretest load test PoC produces a crash overflow in the function match() in pcre_exec.c because of a self-recursive call. NOTE: third parties dispute the relevance of this report, noting that there are options that can be used to limit the amount of stack that is used


  • pcre3 (unimportant)

low : CVE--2017--11164

Affected range>=2:8.39-15
Fixed versionNot Fixed
EPSS Score0.32%
EPSS Percentile71st percentile
Description

In PCRE 8.41, the OP_KETRMAX feature in the match function in pcre_exec.c allows stack exhaustion (uncontrolled recursion) when processing a crafted regular expression.


critical: 0 high: 0 medium: 0 low: 4 systemd 252.33-1~deb12u1 (deb)

pkg:deb/debian/systemd@252.33-1~deb12u1?os_distro=bookworm&os_name=debian&os_version=12

low : CVE--2023--31439

Affected range>=252.33-1~deb12u1
Fixed versionNot Fixed
EPSS Score0.14%
EPSS Percentile50th percentile
Description

An issue was discovered in systemd 253. An attacker can modify the contents of past events in a sealed log file and then adjust the file such that checking the integrity shows no error, despite modifications. NOTE: the vendor reportedly sent "a reply denying that any of the finding was a security vulnerability."


low : CVE--2023--31438

Affected range>=252.33-1~deb12u1
Fixed versionNot Fixed
EPSS Score0.11%
EPSS Percentile46th percentile
Description

An issue was discovered in systemd 253. An attacker can truncate a sealed log file and then resume log sealing such that checking the integrity shows no error, despite modifications. NOTE: the vendor reportedly sent "a reply denying that any of the finding was a security vulnerability."


low : CVE--2023--31437

Affected range>=252.33-1~deb12u1
Fixed versionNot Fixed
EPSS Score0.09%
EPSS Percentile41st percentile
Description

An issue was discovered in systemd 253. An attacker can modify a sealed log file such that, in some views, not all existing and sealed log messages are displayed. NOTE: the vendor reportedly sent "a reply denying that any of the finding was a security vulnerability."


low : CVE--2013--4392

Affected range>=252.33-1~deb12u1
Fixed versionNot Fixed
EPSS Score0.04%
EPSS Percentile5th percentile
Description

systemd, when updating file permissions, allows local users to change the permissions and SELinux security contexts for arbitrary files via a symlink attack on unspecified files.


critical: 0 high: 0 medium: 0 low: 4 openldap 2.5.13+dfsg-5 (deb)

pkg:deb/debian/openldap@2.5.13%2Bdfsg-5?os_distro=bookworm&os_name=debian&os_version=12

low : CVE--2020--15719

Affected range>=2.5.13+dfsg-5
Fixed versionNot Fixed
EPSS Score0.16%
EPSS Percentile54th percentile
Description

libldap in certain third-party OpenLDAP packages has a certificate-validation flaw when the third-party package is asserting RFC6125 support. It considers CN even when there is a non-matching subjectAltName (SAN). This is fixed in, for example, openldap-2.4.46-10.el8 in Red Hat Enterprise Linux.


low : CVE--2017--17740

Affected range>=2.5.13+dfsg-5
Fixed versionNot Fixed
EPSS Score0.49%
EPSS Percentile76th percentile
Description

contrib/slapd-modules/nops/nops.c in OpenLDAP through 2.4.45, when both the nops module and the memberof overlay are enabled, attempts to free a buffer that was allocated on the stack, which allows remote attackers to cause a denial of service (slapd crash) via a member MODDN operation.


low : CVE--2017--14159

Affected range>=2.5.13+dfsg-5
Fixed versionNot Fixed
EPSS Score0.05%
EPSS Percentile23rd percentile
Description

slapd in OpenLDAP 2.4.45 and earlier creates a PID file after dropping privileges to a non-root account, which might allow local users to kill arbitrary processes by leveraging access to this non-root account for PID file modification before a root script executes a "kill cat /pathname" command, as demonstrated by openldap-initscript.


low : CVE--2015--3276

Affected range>=2.5.13+dfsg-5
Fixed versionNot Fixed
EPSS Score0.30%
EPSS Percentile70th percentile
Description

The nss_parse_ciphers function in libraries/libldap/tls_m.c in OpenLDAP does not properly parse OpenSSL-style multi-keyword mode cipher strings, which might cause a weaker than intended cipher to be used and allow remote attackers to have unspecified impact via unknown vectors.


  • openldap (unimportant)
    Debian builds with GNUTLS, not NSS
critical: 0 high: 0 medium: 0 low: 3 krb5 1.20.1-2+deb12u2 (deb)

pkg:deb/debian/krb5@1.20.1-2%2Bdeb12u2?os_distro=bookworm&os_name=debian&os_version=12

low : CVE--2024--26461

Affected range>=1.20.1-2+deb12u2
Fixed versionNot Fixed
EPSS Score0.04%
EPSS Percentile12th percentile
Description

Kerberos 5 (aka krb5) 1.21.2 contains a memory leak vulnerability in /krb5/src/lib/gssapi/krb5/k5sealv3.c.


low : CVE--2024--26458

Affected range>=1.20.1-2+deb12u2
Fixed versionNot Fixed
EPSS Score0.04%
EPSS Percentile12th percentile
Description

Kerberos 5 (aka krb5) 1.21.2 contains a memory leak in /krb5/src/lib/rpc/pmap_rmt.c.


low : CVE--2018--5709

Affected range>=1.20.1-2+deb12u2
Fixed versionNot Fixed
EPSS Score0.09%
EPSS Percentile40th percentile
Description

An issue was discovered in MIT Kerberos 5 (aka krb5) through 1.16. There is a variable "dbentry->n_key_data" in kadmin/dbutil/dump.c that can store 16-bit data but unknowingly the developer has assigned a "u4" variable to it, which is for 32-bit data. An attacker can use this vulnerability to affect other artifacts of the database as we know that a Kerberos database dump file contains trusted data.


critical: 0 high: 0 medium: 0 low: 2 perl 5.36.0-7+deb12u1 (deb)

pkg:deb/debian/perl@5.36.0-7%2Bdeb12u1?os_distro=bookworm&os_name=debian&os_version=12

low : CVE--2023--31486

Affected range>=5.36.0-7+deb12u1
Fixed versionNot Fixed
EPSS Score0.29%
EPSS Percentile69th percentile
Description

HTTP::Tiny before 0.083, a Perl core module since 5.13.9 and available standalone on CPAN, has an insecure default TLS configuration where users must opt in to verify certificates.


low : CVE--2011--4116

Affected range>=5.36.0-7+deb12u1
Fixed versionNot Fixed
EPSS Score0.14%
EPSS Percentile52nd percentile
Description

_is_safe in the File::Temp module for Perl does not properly handle symlinks.


critical: 0 high: 0 medium: 0 low: 2 gcc-12 12.2.0-14 (deb)

pkg:deb/debian/gcc-12@12.2.0-14?os_distro=bookworm&os_name=debian&os_version=12

low : CVE--2023--4039

Affected range>=12.2.0-14
Fixed versionNot Fixed
EPSS Score0.07%
EPSS Percentile34th percentile
Description

DISPUTEDA failure in the -fstack-protector feature in GCC-based toolchains that target AArch64 allows an attacker to exploit an existing buffer overflow in dynamically-sized local variables in your application without this being detected. This stack-protector failure only applies to C99-style dynamically-sized local variables or those created using alloca(). The stack-protector operates as intended for statically-sized local variables. The default behavior when the stack-protector detects an overflow is to terminate your application, resulting in controlled loss of availability. An attacker who can exploit a buffer overflow without triggering the stack-protector might be able to change program flow control to cause an uncontrolled loss of availability or to go further and affect confidentiality or integrity. NOTE: The GCC project argues that this is a missed hardening bug and not a vulnerability by itself.


low : CVE--2022--27943

Affected range>=12.2.0-14
Fixed versionNot Fixed
EPSS Score0.10%
EPSS Percentile44th percentile
Description

libiberty/rust-demangle.c in GNU GCC 11.2 allows stack consumption in demangle_const, as demonstrated by nm-new.


critical: 0 high: 0 medium: 0 low: 2 sqlite3 3.40.1-2+deb12u1 (deb)

pkg:deb/debian/sqlite3@3.40.1-2%2Bdeb12u1?os_distro=bookworm&os_name=debian&os_version=12

low : CVE--2023--36191

Affected range>=3.40.1-2
Fixed versionNot Fixed
EPSS Score0.04%
EPSS Percentile15th percentile
Description

sqlite3 v3.40.1 was discovered to contain a segmentation violation at /sqlite3_aflpp/shell.c.


REJECTED

low : CVE--2021--45346

Affected range>=3.40.1-2+deb12u1
Fixed versionNot Fixed
EPSS Score0.28%
EPSS Percentile69th percentile
Description

A Memory Leak vulnerability exists in SQLite Project SQLite3 3.35.1 and 3.37.0 via maliciously crafted SQL Queries (made via editing the Database File), it is possible to query a record, and leak subsequent bytes of memory that extend beyond the record, which could let a malicious user obtain sensitive information. NOTE: The developer disputes this as a vulnerability stating that If you give SQLite a corrupted database file and submit a query against the database, it might read parts of the database that you did not intend or expect.


critical: 0 high: 0 medium: 0 low: 2 m4 1.4.19-3 (deb)

pkg:deb/debian/m4@1.4.19-3?os_distro=bookworm&os_name=debian&os_version=12

low : CVE--2008--1688

Affected range>=1.4.19-3
Fixed versionNot Fixed
EPSS Score1.58%
EPSS Percentile87th percentile
Description

Unspecified vulnerability in GNU m4 before 1.4.11 might allow context-dependent attackers to execute arbitrary code, related to improper handling of filenames specified with the -F option. NOTE: it is not clear when this issue crosses privilege boundaries.


  • m4 (unimportant)
    The file name is passed through a cmdline argument and m4 doesn't run with
    elevated privileges.

low : CVE--2008--1687

Affected range>=1.4.19-3
Fixed versionNot Fixed
EPSS Score1.12%
EPSS Percentile85th percentile
Description

The (1) maketemp and (2) mkstemp builtin functions in GNU m4 before 1.4.11 do not quote their output when a file is created, which might allow context-dependent attackers to trigger a macro expansion, leading to unspecified use of an incorrect filename.


  • m4 (unimportant)
    This is more a generic bug and not a security issue: the random output would
    need to match the name of an existing macro
critical: 0 high: 0 medium: 0 low: 2 curl 7.88.1-10+deb12u8 (deb)

pkg:deb/debian/curl@7.88.1-10%2Bdeb12u8?os_distro=bookworm&os_name=debian&os_version=12

low : CVE--2025--0725

Affected range>=7.88.1-10+deb12u8
Fixed versionNot Fixed
EPSS Score0.04%
EPSS Percentile18th percentile
Description

When libcurl is asked to perform automatic gzip decompression of content-encoded HTTP responses with the CURLOPT_ACCEPT_ENCODING option, using zlib 1.2.0.3 or older, an attacker-controlled integer overflow would make libcurl perform a buffer overflow.


low : CVE--2024--2379

Affected range>=7.88.1-10+deb12u8
Fixed versionNot Fixed
EPSS Score0.04%
EPSS Percentile16th percentile
Description

libcurl skips the certificate verification for a QUIC connection under certain conditions, when built to use wolfSSL. If told to use an unknown/bad cipher or curve, the error path accidentally skips the verification and returns OK, thus ignoring any certificate problems.


critical: 0 high: 0 medium: 0 low: 2 libpcap 1.10.3-1 (deb)

pkg:deb/debian/libpcap@1.10.3-1?os_distro=bookworm&os_name=debian&os_version=12

low : CVE--2024--8006

Affected range>=1.10.3-1
Fixed versionNot Fixed
EPSS Score0.04%
EPSS Percentile12th percentile
Description

Remote packet capture support is disabled by default in libpcap. When a user builds libpcap with remote packet capture support enabled, one of the functions that become available is pcap_findalldevs_ex(). One of the function arguments can be a filesystem path, which normally means a directory with input data files. When the specified path cannot be used as a directory, the function receives NULL from opendir(), but does not check the return value and passes the NULL value to readdir(), which causes a NULL pointer derefence.


low : CVE--2023--7256

Affected range>=1.10.3-1
Fixed versionNot Fixed
EPSS Score0.04%
EPSS Percentile12th percentile
Description

In affected libpcap versions during the setup of a remote packet capture the internal function sock_initaddress() calls getaddrinfo() and possibly freeaddrinfo(), but does not clearly indicate to the caller function whether freeaddrinfo() still remains to be called after the function returns. This makes it possible in some scenarios that both the function and its caller call freeaddrinfo() for the same allocated memory block. A similar problem was reported in Apple libpcap, to which Apple assigned CVE-2023-40400.


critical: 0 high: 0 medium: 0 low: 1 apt 2.6.1 (deb)

pkg:deb/debian/apt@2.6.1?os_distro=bookworm&os_name=debian&os_version=12

low : CVE--2011--3374

Affected range>=2.6.1
Fixed versionNot Fixed
EPSS Score0.31%
EPSS Percentile70th percentile
Description

It was found that apt-key in apt, all versions, do not correctly validate gpg keys with the master keyring, leading to a potential man-in-the-middle attack.


critical: 0 high: 0 medium: 0 low: 1 nmap 7.93+dfsg1-1 (deb)

pkg:deb/debian/nmap@7.93%2Bdfsg1-1?os_distro=bookworm&os_name=debian&os_version=12

low : CVE--2018--15173

Affected range>=7.93+dfsg1-1
Fixed versionNot Fixed
EPSS Score2.67%
EPSS Percentile90th percentile
Description

Nmap through 7.70, when the -sV option is used, allows remote attackers to cause a denial of service (stack consumption and application crash) via a crafted TCP-based service.


  • nmap (unimportant)
    No security impact
critical: 0 high: 0 medium: 0 low: 1 tar 1.34+dfsg-1.2+deb12u1 (deb)

pkg:deb/debian/tar@1.34%2Bdfsg-1.2%2Bdeb12u1?os_distro=bookworm&os_name=debian&os_version=12

low : CVE--2005--2541

Affected range>=1.34+dfsg-1.2+deb12u1
Fixed versionNot Fixed
EPSS Score0.69%
EPSS Percentile80th percentile
Description

Tar 1.15.1 does not properly warn the user when extracting setuid or setgid files, which may allow local users or remote attackers to gain privileges.


This is intended behaviour, after all tar is an archiving tool and you
need to give -p as a command line flag

critical: 0 high: 0 medium: 0 low: 1 glib2.0 2.74.6-2+deb12u5 (deb)

pkg:deb/debian/glib2.0@2.74.6-2%2Bdeb12u5?os_distro=bookworm&os_name=debian&os_version=12

low : CVE--2012--0039

Affected range>=2.74.6-2+deb12u5
Fixed versionNot Fixed
EPSS Score0.16%
EPSS Percentile53rd percentile
Description

GLib 2.31.8 and earlier, when the g_str_hash function is used, computes hash values without restricting the ability to trigger hash collisions predictably, which allows context-dependent attackers to cause a denial of service (CPU consumption) via crafted input to an application that maintains a hash table. NOTE: this issue may be disputed by the vendor; the existence of the g_str_hash function is not a vulnerability in the library, because callers of g_hash_table_new and g_hash_table_new_full can specify an arbitrary hash function that is appropriate for the application.


critical: 0 high: 0 medium: 0 low: 1 openssl 3.0.15-1~deb12u1 (deb)

pkg:deb/debian/openssl@3.0.15-1~deb12u1?os_distro=bookworm&os_name=debian&os_version=12

low : CVE--2010--0928

Affected range>=3.0.11-1~deb12u2
Fixed versionNot Fixed
EPSS Score0.07%
EPSS Percentile32nd percentile
Description

OpenSSL 0.9.8i on the Gaisler Research LEON3 SoC on the Xilinx Virtex-II Pro FPGA uses a Fixed Width Exponentiation (FWE) algorithm for certain signature calculations, and does not verify the signature before providing it to a caller, which makes it easier for physically proximate attackers to determine the private key via a modified supply voltage for the microprocessor, related to a "fault-based attack."


http://www.eecs.umich.edu/~valeria/research/publications/DATE10RSA.pdf
openssl/openssl#24540
Fault injection based attacks are not within OpenSSLs threat model according
to the security policy: https://www.openssl.org/policies/general/security-policy.html

critical: 0 high: 0 medium: 0 low: 1 coreutils 9.1-1 (deb)

pkg:deb/debian/coreutils@9.1-1?os_distro=bookworm&os_name=debian&os_version=12

low : CVE--2017--18018

Affected range>=9.1-1
Fixed versionNot Fixed
EPSS Score0.04%
EPSS Percentile5th percentile
Description

In GNU Coreutils through 8.29, chown-core.c in chown and chgrp does not prevent replacement of a plain file with a symlink during use of the POSIX "-R -L" options, which allows local users to modify the ownership of arbitrary files by leveraging a race condition.


critical: 0 high: 0 medium: 0 low: 1 libgcrypt20 1.10.1-3 (deb)

pkg:deb/debian/libgcrypt20@1.10.1-3?os_distro=bookworm&os_name=debian&os_version=12

low : CVE--2018--6829

Affected range>=1.10.1-3
Fixed versionNot Fixed
EPSS Score0.33%
EPSS Percentile71st percentile
Description

cipher/elgamal.c in Libgcrypt through 1.8.2, when used to encrypt messages directly, improperly encodes plaintexts, which allows attackers to obtain sensitive information by reading ciphertext data (i.e., it does not have semantic security in face of a ciphertext-only attack). The Decisional Diffie-Hellman (DDH) assumption does not hold for Libgcrypt's ElGamal implementation.


critical: 0 high: 0 medium: 0 low: 1 util-linux 2.38.1-5+deb12u3 (deb)

pkg:deb/debian/util-linux@2.38.1-5%2Bdeb12u3?os_distro=bookworm&os_name=debian&os_version=12

low : CVE--2022--0563

Affected range>=2.38.1-5+deb12u3
Fixed versionNot Fixed
EPSS Score0.05%
EPSS Percentile20th percentile
Description

A flaw was found in the util-linux chfn and chsh utilities when compiled with Readline support. The Readline library uses an "INPUTRC" environment variable to get a path to the library config file. When the library cannot parse the specified file, it prints an error message containing data from the file. This flaw allows an unprivileged user to read root-owned files, potentially leading to privilege escalation. This flaw affects util-linux versions prior to 2.37.4.


critical: 0 high: 0 medium: 0 low: 1 gnupg2 2.2.40-1.1 (deb)

pkg:deb/debian/gnupg2@2.2.40-1.1?os_distro=bookworm&os_name=debian&os_version=12

low : CVE--2022--3219

Affected range>=2.2.40-1.1
Fixed versionNot Fixed
EPSS Score0.05%
EPSS Percentile20th percentile
Description

GnuPG can be made to spin on a relatively small input by (for example) crafting a public key with thousands of signatures attached, compressed down to just a few KB.


critical: 0 high: 0 medium: 0 low: 1 shadow 1:4.13+dfsg1-1 (deb)

pkg:deb/debian/shadow@1:4.13%2Bdfsg1-1?os_distro=bookworm&os_name=debian&os_version=12

low : CVE--2007--5686

Affected range>=1:4.13+dfsg1-1
Fixed versionNot Fixed
EPSS Score0.17%
EPSS Percentile55th percentile
Description

initscripts in rPath Linux 1 sets insecure permissions for the /var/log/btmp file, which allows local users to obtain sensitive information regarding authentication attempts. NOTE: because sshd detects the insecure permissions and does not log certain events, this also prevents sshd from logging failed authentication attempts by remote attackers.


  • shadow (unimportant)
    See #290803, on Debian LOG_UNKFAIL_ENAB in login.defs is set to no so
    unknown usernames are not recorded on login failures
critical: 0 high: 0 medium: 0 low: 1 gnutls28 3.7.9-2+deb12u4 (deb)

pkg:deb/debian/gnutls28@3.7.9-2%2Bdeb12u4?os_distro=bookworm&os_name=debian&os_version=12

low : CVE--2011--3389

Affected range>=3.7.9-2+deb12u3
Fixed versionNot Fixed
EPSS Score1.43%
EPSS Percentile87th percentile
Description

The SSL protocol, as used in certain configurations in Microsoft Windows and Microsoft Internet Explorer, Mozilla Firefox, Google Chrome, Opera, and other products, encrypts data by using CBC mode with chained initialization vectors, which allows man-in-the-middle attackers to obtain plaintext HTTP headers via a blockwise chosen-boundary attack (BCBA) on an HTTPS session, in conjunction with JavaScript code that uses (1) the HTML5 WebSocket API, (2) the Java URLConnection API, or (3) the Silverlight WebClient API, aka a "BEAST" attack.


critical: 0 high: 0 medium: 0 low: 1 net-tools 2.10-0.1 (deb)

pkg:deb/debian/net-tools@2.10-0.1?os_distro=bookworm&os_name=debian&os_version=12

low : CVE--2002--1976

Affected range>=2.10-0.1
Fixed versionNot Fixed
EPSS Score0.06%
EPSS Percentile27th percentile
Description

ifconfig, when used on the Linux kernel 2.2 and later, does not report when the network interface is in promiscuous mode if it was put in promiscuous mode using PACKET_MR_PROMISC, which could allow attackers to sniff the network without detection, as demonstrated using libpcap.


  • net-tools (unimportant)
    This seems to be a misunderstanding of what the PROMISC flag
    is about. ifconfig reports properly when it is set using
    "ifconfig promisc".
critical: 0 high: 0 medium: 0 low: 0 unspecified: 1net-snmp 5.9.3+dfsg-2 (deb)

pkg:deb/debian/net-snmp@5.9.3%2Bdfsg-2?os_distro=bookworm&os_name=debian&os_version=12

unspecified : CVE--2024--26464

Affected range>=5.9.3+dfsg-2
Fixed versionNot Fixed
Description

net-snmp 5.9.4 contains a memory leak vulnerability in /net-snmp/apps/snmpvacm.c.


REJECTED

@jjnicola jjnicola force-pushed the packet-forgery-ipv6 branch from 13a7fc8 to f84b30c Compare June 13, 2024 10:02
@github-actions github-actions bot added minor_release creates a minor release and removed minor_release creates a minor release labels Jun 13, 2024
@jjnicola jjnicola force-pushed the packet-forgery-ipv6 branch from f84b30c to be723cc Compare June 17, 2024 17:35
@github-actions github-actions bot added minor_release creates a minor release and removed minor_release creates a minor release labels Jun 17, 2024
@jjnicola
Copy link
Member Author

jjnicola commented Jun 18, 2024

Waiting for rust-lang/socket2#518

@jjnicola jjnicola force-pushed the packet-forgery-ipv6 branch from be723cc to daad0d3 Compare October 17, 2024 12:42
Copy link

github-actions bot commented Oct 17, 2024

Dependency Review

The following issues were found:

  • ✅ 0 vulnerable package(s)
  • ❌ 1 package(s) with incompatible licenses
  • ❌ 2 package(s) with invalid SPDX license definitions
  • ✅ 0 package(s) with unknown licenses.

View full job summary

@github-actions github-actions bot removed the minor_release creates a minor release label Oct 17, 2024
@jjnicola
Copy link
Member Author

jjnicola commented Nov 5, 2024

waiting for rust-lang/socket2#535

@jjnicola jjnicola force-pushed the packet-forgery-ipv6 branch from daad0d3 to 1892854 Compare December 16, 2024 17:48
@jjnicola jjnicola marked this pull request as ready for review December 16, 2024 17:50
@jjnicola jjnicola requested a review from a team as a code owner December 16, 2024 17:50
@jjnicola jjnicola force-pushed the packet-forgery-ipv6 branch 4 times, most recently from 11dc609 to 8f898fe Compare December 23, 2024 17:07
@jjnicola jjnicola force-pushed the packet-forgery-ipv6 branch from 8f898fe to 5603f82 Compare January 7, 2025 18:07
@jjnicola jjnicola force-pushed the packet-forgery-ipv6 branch from 5603f82 to 956332b Compare January 21, 2025 13:12
Copy link
Contributor

@Tehforsch Tehforsch left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A few comments before I do a detailed review:

I think nasl function argument handling could be used to remove a ton of boilerplate in this code and make the actual logic stand out more. This primarily means moving the primitive types (flags etc) to arguments given by nasl_function and removing all of the custom register.get(...) calls which are boilerplaty and have error handling that is less helpful and inconsistent with the majority of the builtins.

For example this code:

#[nasl_function]
fn get_udp_element(register: &Register) -> Result<NaslValue, FnError> {
    let buf = match register.named("udp") {
        Some(ContextType::Value(NaslValue::Data(d))) => d.clone(),
        _ => {
            return Err(FnError::missing_argument("udp"));
        }
    };
    let ip = packet::ipv4::Ipv4Packet::new(&udp)
        .ok_or_else(|| error("No possible to create a packet from buffer".to_string()))?;
    let udp = packet::udp::UdpPacket::new(ip.payload())
        .ok_or_else(|| error("No possible to create a packet from buffer".to_string()))?;
    ...
}

could be replaced (as a first step) by

#[nasl_function(named(udp))]
fn get_udp_element(udp: &[u8], ...) -> Result<NaslValue, FnError> {
    let ip = packet::ipv4::Ipv4Packet::new(&udp)
        .ok_or_else(|| error("No possible to create a packet from buffer".to_string()))?;
    let udp = packet::udp::UdpPacket::new(ip.payload())
        .ok_or_else(|| error("No possible to create a packet from buffer".to_string()))?;
    ...
}

However, I think we can go further than this and do the rusty thing of moving the parsing logic to the type system via something like this (note that UdpPacket uses the owned version here to avoid some borrow checker difficulties, but I think this could be fixed if it is a performance issue and we decide to go this way):

impl<'a> FromNaslValue<'a> for Ipv4Packet<'a> {
    fn from_nasl_value(val: &'a NaslValue) -> Result<Self, FnError> {
        let buf: &[u8] = <&[u8]>::from_nasl_value(val)?;
        let ip = packet::ipv4::Ipv4Packet::new(&buf)
            .ok_or_else(|| PacketForgeryError::CreatePacket)?;
        Ok(ip)
    }
}

impl<'a> FromNaslValue<'a> for UdpPacket<'a> {
    fn from_nasl_value(val: &'a NaslValue) -> Result<Self, FnError> {
        let ip: Ipv4Packet = Ipv4Packet::from_nasl_value(val)?;
        let udp = packet::udp::UdpPacket::owned(ip.payload().to_vec())
            .ok_or_else(|| PacketForgeryError::CreatePacket)?;
        Ok(udp)
    }
}

Doing this for the various packet types will allow us to simply write something like this in virtually all of the builtin functions:

#[nasl_function(named(udp, ...))]
fn get_udp_element(udp: UdpPacket, ...) -> Result<NaslValue, FnError> {
    ...
}

I think this will help separate argument handling from the code logic, parse as early as possible and allow reusing those packet types in various places.

Finally, I think a similar strategy could be used for the different elements of the packets which are currently only represented by the element argument string. To clarify what I mean, here is the example of the get_udp_element method:

pub enum UdpElement {
    SourcePort,
    DestinationPort,
    Length,
    Checksum,
}

// This is not very inspiring to write, and could even be done by a macro if we want to
impl FromStr for UdpElement {
    type Err = ArgumentError;
   
    fn from_str(s: &str) -> Result<Self, Self::Err> {
        match s {
            "uh_sport" => Ok(Self::SourcePort),
            "uh_dport" => Ok(Self::DestinationPort),
            "uh_len" => Ok(Self::Length),
            "uh_sum" => Ok(Self::Checksum),
            s => Err(ArgumentError::WrongArgument(format!("Invalid element for UDP packet: {}", s)).into()),
        }
    }
}

trait PacketElement {
    type Packet<'a>: pnet::packet::Packet;
    fn get_element<'a>(&self, packet: &Self::Packet<'a>) -> i64;
}

impl PacketElement for UdpElement {
    type Packet<'a> = packet::udp::UdpPacket<'a>;

    fn get_element<'a>(&self, packet: &Self::Packet<'a>) -> i64 {
        match self {
            UdpElement::SourcePort => packet.get_source() as i64,
            UdpElement::DestinationPort => packet.get_destination() as i64,
            UdpElement::Length => packet.get_length() as i64,
            UdpElement::Checksum => packet.get_checksum() as i64,
        }
    }
}

/// Represents the fact that the `element` argument to
/// the nasl functions below can often be of value "data",
/// meaning that the function should simply return the
/// payload of the packet.
enum ElementOrData<T> {
    Element(T),
    Data,
}

impl<'a, T> FromNaslValue<'a> for ElementOrData<T>
where
    T: FromStr<Err=ArgumentError>,
{
    fn from_nasl_value(value: &NaslValue) -> Result<Self, FnError> {
        let s = String::from_nasl_value(value)?;
        Ok(match s.as_str() {
            "data" => Self::Data,
            s => Self::Element(
                T::from_str(&s)?
            ),
        })
    }
}

impl<T: PacketElement> ElementOrData<T> {
    fn get<'a>(self, packet: &T::Packet<'a>) -> NaslValue {
        match self {
            ElementOrData::Element(element) => element.get_element(packet).into(),
            ElementOrData::Data => packet.payload().into(),
        }
    }
}

#[nasl_function(named(udp, element))]
fn get_udp_element(udp: UdpPacket, element: ElementOrData<UdpElement>) -> Result<NaslValue, FnError> {
    Ok(element.get(&udp))
}

Using these element types again allows us to separate the parsing logic (which is often done twice for "setter" and "getter" builtins respectively) from the actual interesting logic, make future changes easier and avoid accidentally introducing typos or something similar that would break functionality.

@jjnicola jjnicola force-pushed the packet-forgery-ipv6 branch from 956332b to b57941c Compare February 26, 2025 14:56
@jjnicola jjnicola force-pushed the packet-forgery-ipv6 branch from b57941c to 4586f22 Compare February 27, 2025 12:42
@jjnicola jjnicola requested a review from Tehforsch February 27, 2025 12:42
@jjnicola jjnicola enabled auto-merge (squash) February 27, 2025 12:43
@jjnicola jjnicola force-pushed the packet-forgery-ipv6 branch from 4586f22 to d99bb22 Compare February 27, 2025 14:30
…ween ipv4 and ipv6). Code Improvements and readability. Fix and add tests.
@jjnicola jjnicola force-pushed the packet-forgery-ipv6 branch from d99bb22 to 061617c Compare February 27, 2025 14:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants