nmap: Upgrade 7.99 -> 7.991

Upgrade to release 7.991:

- Upgraded included OpenSSL t- version 3.0.21 on all platforms.
- Fixed a memory-consumption hang in Ncat's HTTP proxy code that
  affected both connect and listen modes, reported by kumama_nui.
- Patched our included libssh2 source with upstream fixes for
  CVE-2025-15661, CVE-2026-7598, CVE-2026-55199, CVE-2026-55200,
  CVE-2026-58050, and CVE-2026-58051. The version number has been
  annotated as 1.11.1_NMAP1
- [Zenmap][GH#3347] Fixed several issues leading t- crashes when
  parsing, editing, or saving command profiles containing '%'
  characters.
- [NSE][GH#2272] smb-enum-shares failed t- produce output for valid
  shares when an error was encountered on one share.
- [GH#3410] Fixed an issue where DNS resolution would incorrectly
  fail t- match the same name in a different case.
- [NSE][GH#1066] Added service names for SSL-protected services
  like amt-soap-https t- portrules for several scripts, ensuring
  they run on these as well as the standard unencrypted services.
- Audited and converted most instances of strcat, strcpy, and
  sprintf t- use bounded functions instead.
- [NSE][GH#2221] mysql-dump-hashes now uses the correct column name
  for MySQL 5.7+
- [NSE][GH#2238] http-referer-checker was incorrectly fetching
  off-host URLs. Now only URLs on the target are fetched.
- [GH#2122] When an interface is specified with -e, als- bind t-
  the IP address for that device s- that it works for non-Linux
  systems and non-root users.
- [Nsock][GH#1939] When nsock_iod_set_localaddr() is used,
  nsock_connect_*() will now treat errors in bind(2) as connection
  failure.
- [GH#2732] Fix a potential crash on 32-bit platforms in debug mode
  due to incorrect format specifier for 64-bit integer type.
  [Christopher Chavez]
- [GH#3201][GH#3367] Increase line length limit for
  nmap-service-probes and correctly handle lines that are to- long.
  [@liquidpele, Ashutosh Kumar Singh]
- [GH#3414] Avoid out-of-bounds read when parsing PTR domain names.
  [@toor11 (Juri)]
- [GH#2245] Ensure variables updated by signal handlers are
  volatile sig_atomic_t.
- [Ncat][GH#1410] Fix an assertion failure (count <= INT_MAX) in
  ncat -lk in some cases where stdin or a listening socket produces
  an error.
- [NSE][GH#1946] Fix a cryptic error in smb-enum-services, "Server
  returned less data than needed for header" when smb.start_smb()
  failed.
- Fixed an issue with parsing nmap-service-probes that could cause
  a corrupted file t- crash Nmap. Reported by Muhammed Hussein.
- [NSE][GH#2016] Removed hostmap-bfk.nse, since the service it used
  shut down.
- Fixed several issues reported by Himanshu Anand: infinite loop in
  TCP options parsing and out-of-bounds memory read in IPv4 OS
  detection; integer underflow in IPv6 extension header processing;
  and undefined behavior in DNS label parsing.
- [GH#2721] Added checks for returned pointers from OpenSSL
  allocation functions.
- [GH#1546] Fix an incorrect assertion "timeout / 1000 <= (long)
  o.scan_delay" in traceroute which failed for timeouts greater
  than 1 second when there was n- scan delay.
- [GH#3175] The --stats-every option can now be used in conjunction
  with --noninteractive. Previously, n- stats messages were printed
  if a TTY was not attached.
- [GH#3375] Nmap can now be built with OpenSSL 4.0
- [Nping][GH#1751] The --rate option will not accept a rate higher
  than 1000 packets per second, since Nsock timers have millisecond
  resolution. Use --delay 0 for unlimited rate.
- [Nping] Fixed several issues with Nping in IPv6 mode including:
  + [GH#1261] Incorrect BPF generated leading t- "expression
    rejects all packets"
  + [GH#3215] Incorrect constant used t- check for IP version in
    Ech- Server
- [NSE][GH#3368] Fixed an out-of-memory issue in packet.lua when
  parsing a zero-length TCP header option. [Maxim Suhanov]
- Fixed an issue where Nmap OS scan trusts a packet's ip_len t-
  size a CRC32 computation over TCP RST payload data, which may
  result in reading arbitrary heap data. Reported by Michael
  Bommarito.
- [Ncat][GH#3005] Correctly report listening port number. `ncat -l
  -p 0` will cause Ncat t- listen on an ephemeral port, but it was
  reporting itself as listening on port 0.
- [Ncat][GH#1672] Fixed an issue where Ncat in server mode would
  quit without printing the last received data on a connection,
  particularly affecting SCTP.
- [Ncat][GH#2827] Fixed an issue where Ncat in --send-only mode
  would ignore disconnects and crash when it tries t- send data t-
  a disconnected client.
- [Ncat][GH#3291] Fixed an issue where Ncat on Windows would quit
  after 2 minutes due t- an OS-enforced timeout on the half-open
  TCP socket used to emulate STDIN.
- [Nping][GH#564] Allow Nping t- fall back t- TCP Connect mode on
  Windows when Npcap is not installed.
- [Ncat] Fixed several issues reported by Muhammed Hussein
  involving crashes in Ncat's server-mode HTTP proxy, as well as
  one code-quality issue with its Telnet negotiation code.
- [Nsock][GH#2595] Fix an issue where Nsock's SOCKS4 proxy code
  would send additional null bytes on Windows and other platforms
  where the compiler does not understand __attribute__((packed)).
  [Daniel Miller]
- The --release-memory option is now a no-op. Nmap will always run
  finalization routines that release allocated memory before
  closing.
- Fixed an integer underflow in service_scan.cc that would cause
  little-endian integers extracted from the beginning of a service
  banner t- be interpreted as 0. Discovered with AFL++ by Malek
  Althubiany.
- [Nsock][GH#583] Use OpenSSL security levels and callbacks t-
  prevent errors connecting t- certain insecure targets when using
  NSOCK_SSL_MAX_SPEED. The default, as used in Ncat, now uses
  stricter-than-default security level.
- [GH#410] If a target times out due t- --host-timeout, d- not
  perform traceroute.
- [Nping][GH#380] Disallow combining Ethernet-related options like
  --dest-mac with --send-ip
- [NSE][GH#3250][GH#3206] Fix assertion failures in cases where
  connect or send returns immediately with a status other than
  ERROR, e.g. TIMEOUT or CANCELED. [Daniel Miller]
- [Ncat][GH#290] Enable ncat -l --ssl t- use DHE and ECDHE cipher
  suites for perfect forward secrecy.
- Fix a crash when writing long CPE strings t- output. Reported by
  Harshit Gupta. [Daniel Miller]
- [Ncat] Fix several cases where Ncat's SOCKS5 client could
  interpret uninitialized data as protocol data, triggered by a
  malicious SOCKS5 proxy server. N- code execution or application
  crash is possible. Reported by Govind Pratap Singh. [Daniel
  Miller]
- [Nping] Fix a out-of-bounds access in Nping Ech- client allowing
  a malicious Nping EchoServer t- zer- 32 bytes of memory outside
  the packet buffer. Reported by Harshit Gupta. [Daniel Miller]
- Fix a 1-byte overrun (read) while reading certain crafted DNS
  labels, reported by Peter Parker. [Daniel Miller]
- [NSE][GH#3317] Function url.build_path was mangling special
  characters in URL path segments. [nnposter]

Drop 0004-libdnet-fix-PF_PACKET-conftest-nested-function.patch
because the check for PF_PACKET that failed with clang has been
fixed with commit 33c39cd38 in the upstream of nmap.

Set OEQA_BUILDPATHS_SKIP to ignore upstream HOME path match and
avoid buildpaths QA error.

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
This commit is contained in:
Leon Anavi authored and Khem Raj committed 2026-10-14 07:59:10 -07:00
1 parent f94c5d7a92
commit 78ab2ef2f0
3 files changed
+15 -57

No files matched your search

@@ -1,4 +1,4 @@
From 2a361989b5f84ec23ba7ccb6e527a5590ff55deb Mon Sep 17 00:00:00 2001
From c634826b85bc4b67890a18379025d1bdd530efa0 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sun, 20 Jan 2019 23:11:56 -0800
Subject: [PATCH] Fix building with libc++
@@ -6,15 +6,16 @@ Subject: [PATCH] Fix building with libc++
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
---
nping/EchoServer.cc | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
nping/EchoServer.cc | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/nping/EchoServer.cc b/nping/EchoServer.cc
index 40cd4d6..04433e1 100644
index 41108fc67..d392039a6 100644
--- a/nping/EchoServer.cc
+++ b/nping/EchoServer.cc
@@ -282,14 +282,14 @@ int EchoServer::nep_listen_socket(){
@@ -212,14 +212,14 @@ int EchoServer::nep_listen_socket(){
server_addr6.sin6_len = sizeof(struct sockaddr_in6);
#endif
/* Bind to local address and the specified port */
@@ -32,7 +33,7 @@ index 40cd4d6..04433e1 100644
nping_print(VB_1, "Server bound to port %d", port);
}
}
@@ -320,12 +320,12 @@ int EchoServer::nep_listen_socket(){
@@ -250,12 +250,12 @@ int EchoServer::nep_listen_socket(){
#endif
/* Bind to local address and the specified port */
@@ -47,7 +48,7 @@ index 40cd4d6..04433e1 100644
nping_fatal(QT_3, "Could not bind to port %d (%s).", port, strerror(errno));
}else{
nping_print(VB_1, "Server bound to port %d", port);
@@ -561,7 +561,7 @@ clientid_t EchoServer::nep_match_headers(IPv4Header *ip4, IPv6Header *ip6, TCPHe
@@ -491,7 +491,7 @@ clientid_t EchoServer::nep_match_headers(IPv4Header *ip4, IPv6Header *ip6, TCPHe
nping_print(DBG_3, ";");
/* The payload magic may affect the score only between
* zero and 4 bytes. This is done to prevent long
@@ -56,16 +57,7 @@ index 40cd4d6..04433e1 100644
* increasing the score a lot and cause problems for
* the matching logic. */
current_score+= MIN(4, fspec->len)*FACTOR_PAYLOAD_MAGIC;
@@ -571,7 +571,7 @@ clientid_t EchoServer::nep_match_headers(IPv4Header *ip4, IPv6Header *ip6, TCPHe
default:
nping_warning(QT_2, "Bogus field specifier found in client #%d context. Please report a bug", ctx->getIdentifier());
break;
- }
+ }
} /* End of field specifiers loop */
nping_print(DBG_3, "%s() current_score=%.02f candidate_score=%.02f", __func__, current_score, candidate_score);
@@ -650,7 +650,7 @@ clientid_t EchoServer::nep_match_packet(const u8 *pkt, size_t pktlen){
@@ -581,7 +581,7 @@ clientid_t EchoServer::nep_match_packet(const u8 *pkt, size_t pktlen){
}else{
if( (tcplen=tcp.validate())==OP_FAILURE){
return CLIENT_NOT_FOUND;
@@ -74,3 +66,6 @@ index 40cd4d6..04433e1 100644
if( (int)pktlen > (iplen+tcplen) ){
if( payload.storeRecvData(pkt+iplen+tcplen, pktlen-iplen-tcplen)!=OP_FAILURE)
payload_included=true;
--
2.43.0
@@ -1,38 +0,0 @@
From: Khem Raj <raj.khem@gmail.com>
Date: Tue, 24 Jun 2026 00:00:00 +0000
Subject: [PATCH] libdnet: fix PF_PACKET conftest nested function
The bundled libdnet-stripped AC_DNET_LINUX_PF_PACKET check used
"int foo() { return ETH_P_ALL; }" as the AC_TRY_COMPILE body, which the
generated configure places inside main(). clang rejects nested function
definitions ("function definition is not allowed here"), so the check
fails and configure aborts with "Ethernet support not found". Use a plain
expression statement that still references ETH_P_ALL. Patch both the macro
source and the shipped configure.
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
--- a/libdnet-stripped/m4/acinclude.m4
+++ b/libdnet-stripped/m4/acinclude.m4
@@ -149,7 +149,7 @@
[AC_MSG_CHECKING(for Linux PF_PACKET sockets)
AC_TRY_COMPILE([#include <netpacket/packet.h>
#include <linux/if_ether.h>],
- [int foo() { return ETH_P_ALL; }],
+ [(void) ETH_P_ALL;],
ac_cv_dnet_linux_pf_packet=yes,
ac_cv_dnet_linux_pf_packet=no)
AC_MSG_RESULT($ac_cv_dnet_linux_pf_packet)
--- a/libdnet-stripped/configure
+++ b/libdnet-stripped/configure
@@ -15219,7 +15219,7 @@
int
main (void)
{
-int foo() { return ETH_P_ALL; }
+(void) ETH_P_ALL;
;
return 0;
}
@@ -10,9 +10,8 @@ SRC_URI = "http://nmap.org/dist/${BP}.tar.bz2 \
file://0001-Include-time.h-header-to-pass-clang-compilation.patch \
file://0002-Fix-building-with-libc.patch \
file://0001-fix-racing-between-build-ncat-and-build-lua.patch \
file://0004-libdnet-fix-PF_PACKET-conftest-nested-function.patch \
"
SRC_URI[sha256sum] = "df512492ffd108e53a27a06f26d8635bbe89e0e569455dc8ffef058c035d51b2"
SRC_URI[sha256sum] = "a5d507f29437bef3bedd4771ff9aaa8fc1c2a109ddba1f5b1cf12027456929be"
UPSTREAM_CHECK_REGEX = "nmap-(?P<pver>\d+(\.\d+)+)\.tar"
@@ -70,3 +69,5 @@ do_install:append() {
FILES:${PN} += "${PYTHON_SITEPACKAGES_DIR} ${datadir}/ncat"
RDEPENDS:${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'ndiff', 'python3-difflib python3-asyncio python3-xml', '', d)}"
OEQA_BUILDPATHS_SKIP = "${HOME}"