Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package open-iscsi for openSUSE:Factory checked in at 2026-07-20 09:56:59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/open-iscsi (Old) and /work/SRC/openSUSE:Factory/.open-iscsi.new.24530 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "open-iscsi" Mon Jul 20 09:56:59 2026 rev:140 rq:1366256 version:unknown Changes: -------- --- /work/SRC/openSUSE:Factory/open-iscsi/open-iscsi.changes 2026-03-14 22:21:34.859107726 +0100 +++ /work/SRC/openSUSE:Factory/.open-iscsi.new.24530/open-iscsi.changes 2026-07-20 09:57:08.411688574 +0200 @@ -1,0 +2,12 @@ +Thu Jul 16 17:56:39 UTC 2026 - Lee Duncan <[email protected]> + +- Update to version 2.1.12.suse+0.8f77cf16: + * Preparing for version 2.1.12 (#536) + * Fix security issues recently discovered by Keith at Linneman Labs (#535) + (CVE-2026-44943 and CVE-2026-44944) + * iscsi-init.service: Use iscsi-gen-initiatorname + * iscsi-gen-initiatorname use @IQN_PREFIX@ as default + * avoid possible double free of found in idbm_rec_update_param (#528) + * iscsi: validate interface IP against target address family (#527) + +------------------------------------------------------------------- Old: ---- open-iscsi-2.1.11.suse+88.8e0635b3.tar.xz New: ---- open-iscsi-2.1.12.suse+0.8f77cf16.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ open-iscsi.spec ++++++ --- /var/tmp/diff_new_pack.kCK4GF/_old 2026-07-20 09:57:09.043709842 +0200 +++ /var/tmp/diff_new_pack.kCK4GF/_new 2026-07-20 09:57:09.043709842 +0200 @@ -45,13 +45,13 @@ %endif %define iscsi_minor_release 1 -%define iscsi_patch_release 11 +%define iscsi_patch_release 12 %define iscsi_patch_release_suse %{iscsi_patch_release}.suse -%define iscsi_service_tag 88.8e0635b3 +%define iscsi_service_tag 0.8f77cf16 %define libname libopeniscsiusr0 %define libversion 0.2.0 Name: open-iscsi -Version: 2.1.11 +Version: 2.1.12 Release: 0 Summary: Linux iSCSI Software Initiator License: GPL-2.0-or-later ++++++ _scmsync.obsinfo ++++++ --- /var/tmp/diff_new_pack.kCK4GF/_old 2026-07-20 09:57:09.075710918 +0200 +++ /var/tmp/diff_new_pack.kCK4GF/_new 2026-07-20 09:57:09.079711053 +0200 @@ -1,5 +1,5 @@ -mtime: 1773264633 -commit: 4626ab3954af029012c2288330e15386878b739b6846ee41b79ccd45c1ea4f97 +mtime: 1784227856 +commit: e7d4ab1b4dd42eaa11991c5e3e6d643482609986e2a0cdf602406939bfada097 url: https://src.opensuse.org/lee_duncan/open-iscsi revision: factory ++++++ _service ++++++ --- /var/tmp/diff_new_pack.kCK4GF/_old 2026-07-20 09:57:09.103711861 +0200 +++ /var/tmp/diff_new_pack.kCK4GF/_new 2026-07-20 09:57:09.111712129 +0200 @@ -4,7 +4,7 @@ <param name="scm">git</param> <param name="filename">open-iscsi</param> <param name="version">HEAD</param> - <param name="versionformat">2.1.11.suse+@TAG_OFFSET@.%h</param> + <param name="versionformat">2.1.12.suse+@TAG_OFFSET@.%h</param> <param name="match-tag">2.1.[0-9]*</param> <param name="revision">openSUSE-Factory</param> <param name="changesgenerate">enable</param> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.kCK4GF/_old 2026-07-20 09:57:09.135712937 +0200 +++ /var/tmp/diff_new_pack.kCK4GF/_new 2026-07-20 09:57:09.139713072 +0200 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/openSUSE/open-iscsi.git</param> - <param name="changesrevision">8e0635b3bc07f057c4f258ded53a75bea9050a56</param></service></servicedata> + <param name="changesrevision">8f77cf164546757fca396cf4ffa401b16084eca8</param></service></servicedata> (No newline at EOF) ++++++ build.specials.obscpio ++++++ ++++++ build.specials.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/.gitignore new/.gitignore --- old/.gitignore 1970-01-01 01:00:00.000000000 +0100 +++ new/.gitignore 2026-07-16 20:50:56.000000000 +0200 @@ -0,0 +1 @@ +.osc ++++++ open-iscsi-2.1.11.suse+88.8e0635b3.tar.xz -> open-iscsi-2.1.12.suse+0.8f77cf16.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/open-iscsi-2.1.11.suse+88.8e0635b3/Changelog new/open-iscsi-2.1.12.suse+0.8f77cf16/Changelog --- old/open-iscsi-2.1.11.suse+88.8e0635b3/Changelog 2026-03-11 21:24:20.000000000 +0100 +++ new/open-iscsi-2.1.12.suse+0.8f77cf16/Changelog 2026-07-15 22:44:58.000000000 +0200 @@ -1,3 +1,51 @@ + > open-iscsi-2.1.11 - open-iscsi-2.1.12 (Jul 2026)) + +Cav4ever (1): + avoid possible double free of found in idbm_rec_update_param (#528) + +Gulam Mohamed (1): + Modify log function to print session id (#498) + +Iliya Peregoudov (1): + Add tcp.congestion_control configuration option (#520) + +Jesse Taube (2): + iscsi-gen-initiatorname use @IQN_PREFIX@ as default + iscsi-init.service: Use iscsi-gen-initiatorname + +Lee Duncan (5): + Fix issue with IPv6 adapter interfaces (#508) + Small cleanups for firmware discovery. (#522) + Fix unused variable warning in usr/io.c (#524) + Make iface.example a doc file. (#526) + Fix security issues recently discovered by Keith at Linneman Labs (#535) + +Ma Xinjian (2): + Makefile: fix "No rule to make target 'iscsiuio/Makefile.in" issue (#506) + fwparam_ppc.c: Fix the calloc-transposed-args issue (#504) + +Mike Andrews (1): + Fix incorrect parsing of node.discovery_type "static" and "fw" (#518) + +NitinYewale (1): + doc: fixup iscsiadm man page option for -r (#501) + +PerA (1): + Fix typo in initiator.c (#507) + +Praveen Kannoju (1): + iscsi: validate interface IP against target address family (#527) + +Shminderjit Singh (1): + iscsi: delay reconnect until interface has valid IP. (#511) + +Tianon Gravi (1): + Fix minor typo ("authenticaton") (#500) + +wuguanghao3 (1): + iscsi_net_util: avoid copying NULL pointers with strlcpy() (#515) + + -> open-iscsi-2.1.10 - open-iscsi-2.1.11 (Feb 2025) Gulam Mohamed (1): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/open-iscsi-2.1.11.suse+88.8e0635b3/Makefile new/open-iscsi-2.1.12.suse+0.8f77cf16/Makefile --- old/open-iscsi-2.1.11.suse+88.8e0635b3/Makefile 2026-03-11 21:24:20.000000000 +0100 +++ new/open-iscsi-2.1.12.suse+0.8f77cf16/Makefile 2026-07-15 22:44:58.000000000 +0200 @@ -7,7 +7,7 @@ DESTDIR ?= # our VERSION String -ISCSI_VERSION_STR ?= 2.1.11 +ISCSI_VERSION_STR ?= 2.1.12 prefix = /usr exec_prefix = diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/open-iscsi-2.1.11.suse+88.8e0635b3/doc/iscsi-gen-initiatorname.8.template new/open-iscsi-2.1.12.suse+0.8f77cf16/doc/iscsi-gen-initiatorname.8.template --- old/open-iscsi-2.1.11.suse+88.8e0635b3/doc/iscsi-gen-initiatorname.8.template 2026-03-11 21:24:20.000000000 +0100 +++ new/open-iscsi-2.1.12.suse+0.8f77cf16/doc/iscsi-gen-initiatorname.8.template 2026-07-15 22:44:58.000000000 +0200 @@ -36,7 +36,7 @@ .TP .BI [-p] \fIIQN-PREFIX\fP Use \fIIQN-PREFIX\fP as the prefix to the IQN generated, -instead of the default of \fBiqn.1996-04.de.suse:01\fP. +instead of the default of \fB@IQN_PREFIX@\fP. .SH FILES .TP @HOMEDIR@/initiatorname.iscsi diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/open-iscsi-2.1.11.suse+88.8e0635b3/iscsiuio/src/unix/iscsid_ipc.c new/open-iscsi-2.1.12.suse+0.8f77cf16/iscsiuio/src/unix/iscsid_ipc.c --- old/open-iscsi-2.1.11.suse+88.8e0635b3/iscsiuio/src/unix/iscsid_ipc.c 2026-03-11 21:24:20.000000000 +0100 +++ new/open-iscsi-2.1.12.suse+0.8f77cf16/iscsiuio/src/unix/iscsid_ipc.c 2026-07-15 22:44:58.000000000 +0200 @@ -1120,10 +1120,10 @@ continue; } - if (!mgmt_peeruser(iscsid_opts.fd, user) || strncmp(user, "root", PEERUSER_MAX)) { + if (!mgmt_peeruser(s2, user) || strncmp(user, "root", PEERUSER_MAX)) { close(s2); ILOG_ERR(PFX "Access error: non-administrative connection rejected"); - break; + continue; } /* this closes the file descriptor s2 */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/open-iscsi-2.1.11.suse+88.8e0635b3/meson.build new/open-iscsi-2.1.12.suse+0.8f77cf16/meson.build --- old/open-iscsi-2.1.11.suse+88.8e0635b3/meson.build 2026-03-11 21:24:20.000000000 +0100 +++ new/open-iscsi-2.1.12.suse+0.8f77cf16/meson.build 2026-07-15 22:44:58.000000000 +0200 @@ -4,7 +4,7 @@ project('open-iscsi', 'c', meson_version: '>= 0.54.0', - version: '2.1.11', + version: '2.1.12', license: 'LGPL-2.1-or-later', default_options: [ 'c_std=gnu99', diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/open-iscsi-2.1.11.suse+88.8e0635b3/usr/discovery.c new/open-iscsi-2.1.12.suse+0.8f77cf16/usr/discovery.c --- old/open-iscsi-2.1.11.suse+88.8e0635b3/usr/discovery.c 2026-03-11 21:24:20.000000000 +0100 +++ new/open-iscsi-2.1.12.suse+0.8f77cf16/usr/discovery.c 2026-07-15 22:44:58.000000000 +0200 @@ -137,7 +137,9 @@ uint32_t status; int rc; + isns_config.ic_security = 0; + source = isns_source_create_iscsi(iname); if (!source) return ISCSI_ERR_NOMEM; @@ -215,6 +217,11 @@ continue; } + if (!iqn_name_valid(pg_tgt)) { + log_error("iSNS discovery Target Name invalid: ignoring it"); + continue; + } + if (!isns_object_get_ipaddr(obj, ISNS_TAG_PG_PORTAL_IP_ADDR, &in_addr)) { log_debug(1, "Missing addr"); @@ -293,6 +300,11 @@ log_debug(1, "trying to %s %s with iSNS server.", op_reg ? "register" : "deregister", iname); + if (!iqn_name_valid(iname)) { + log_error("iSNS initiatorname invalid: ignoring it"); + return ISCSI_ERR_INVAL; + } + source = isns_source_create_iscsi(iname); if (!source) return ISCSI_ERR_NOMEM; @@ -612,6 +624,12 @@ log_error("TargetName %s too long, ignoring", name); return 0; } + + if (!iqn_name_valid(name)) { + log_error("Discovery TargetName invalid, ignoring"); + return 0; + } + text = name + length; /* skip NULs after the name */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/open-iscsi-2.1.11.suse+88.8e0635b3/usr/idbm.c new/open-iscsi-2.1.12.suse+0.8f77cf16/usr/idbm.c --- old/open-iscsi-2.1.11.suse+88.8e0635b3/usr/idbm.c 2026-03-11 21:24:20.000000000 +0100 +++ new/open-iscsi-2.1.12.suse+0.8f77cf16/usr/idbm.c 2026-07-15 22:44:58.000000000 +0200 @@ -1167,8 +1167,10 @@ updated: strlcpy((char*)info[i].value, value, VALUE_MAXVAL); - if (found) + if (found) { free(found); + found = NULL; + } #define check_password_param(_param) \ if (!passwd_done && !strcmp(#_param, name)) { \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/open-iscsi-2.1.11.suse+88.8e0635b3/usr/initiator.h new/open-iscsi-2.1.12.suse+0.8f77cf16/usr/initiator.h --- old/open-iscsi-2.1.11.suse+88.8e0635b3/usr/initiator.h 2026-03-11 21:24:20.000000000 +0100 +++ new/open-iscsi-2.1.12.suse+0.8f77cf16/usr/initiator.h 2026-07-15 22:44:58.000000000 +0200 @@ -21,6 +21,7 @@ #define INITIATOR_H #include <stdint.h> +#include <stdbool.h> #include <net/if.h> #include <sys/time.h> @@ -412,4 +413,6 @@ extern void iscsi_session_init_params(struct iscsi_session *session); extern int session_in_use(int sid); + +extern bool iqn_name_valid(const char *name); #endif /* INITIATOR_H */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/open-iscsi-2.1.11.suse+88.8e0635b3/usr/initiator_common.c new/open-iscsi-2.1.12.suse+0.8f77cf16/usr/initiator_common.c --- old/open-iscsi-2.1.11.suse+88.8e0635b3/usr/initiator_common.c 2026-03-11 21:24:20.000000000 +0100 +++ new/open-iscsi-2.1.12.suse+0.8f77cf16/usr/initiator_common.c 2026-07-15 22:44:58.000000000 +0200 @@ -24,6 +24,7 @@ #include <stdlib.h> #include <errno.h> #include <dirent.h> +#include <stdbool.h> #include <libmount/libmount.h> #include "iface.h" @@ -749,3 +750,35 @@ } return 0; } + +/** + * @brief iqn_name_valid -- return whether or not the supplied + * IQN name valid + * + * @details Checks for invalid characters, using RFC 3722, + * section 6.2, "Currently Prohibited ASCII Characters" + * + * @param name the IQN name we are checking + * @return true iff the whole name (string) has valid + * charaters + */ +bool +iqn_name_valid(const char *name) +{ + unsigned char *cp; + + /* ensure no invalid characters */ + for (cp = name; *cp != '\0'; cp++) + if ((*cp <= '\x2c') || + (*cp == '\x2f') || + ((*cp >= '\x3b') && (*cp <= '\x40')) || + ((*cp >= '\x5b') && (*cp <= '\x60')) || + (*cp >= '\x7b')) { + log_debug(8, "IQN name is invalid: \"%s\" (char: '%#02x')", + name, *cp); + return false; + } + + log_debug(8, "IQN name has all valid characters: \"%s\"", name); + return true; +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/open-iscsi-2.1.11.suse+88.8e0635b3/usr/io.c new/open-iscsi-2.1.12.suse+0.8f77cf16/usr/io.c --- old/open-iscsi-2.1.11.suse+88.8e0635b3/usr/io.c 2026-03-11 21:24:20.000000000 +0100 +++ new/open-iscsi-2.1.12.suse+0.8f77cf16/usr/io.c 2026-07-15 22:44:58.000000000 +0200 @@ -207,10 +207,10 @@ * return 1: if the interface has a valid IP. */ static bool -iscsi_conn_iface_has_ip(char *iface_name) +iscsi_conn_iface_has_ip(char *iface_name, int expected_family) { struct ifaddrs *ifaddr = NULL, *ifa; - int family, status = 0; + int status = 0; /* * if getifaddrs() fails, something went wrong, requeue the request. @@ -224,13 +224,11 @@ for (ifa = ifaddr; ifa != NULL; ifa = ifa->ifa_next) { if (strcmp(ifa->ifa_name, iface_name) != 0 || ifa->ifa_addr == NULL || - (ifa->ifa_addr->sa_family != AF_INET && - ifa->ifa_addr->sa_family != AF_INET6)) { + (ifa->ifa_addr->sa_family != expected_family)) { continue; } - family = ifa->ifa_addr->sa_family; - if (family == AF_INET) { + if (expected_family == AF_INET) { struct sockaddr_in *sin = (struct sockaddr_in *)ifa->ifa_addr; /* * Check for a valid IPv4 address. @@ -238,7 +236,7 @@ if (sin->sin_addr.s_addr != 0) status = 1; break; - } else if (family == AF_INET6) { + } else if (expected_family == AF_INET6) { struct sockaddr_in6 *sin6 = (struct sockaddr_in6 *)ifa->ifa_addr; /* * Check for a valid IPv6 address. @@ -257,7 +255,7 @@ return status; } -static int bind_conn_to_iface(iscsi_conn_t *conn, struct iface_rec *iface) +static int bind_conn_to_iface(iscsi_conn_t *conn, struct iface_rec *iface, int expected_family) { struct iscsi_session *session = conn->session; @@ -295,7 +293,7 @@ memset(&ifr, 0, sizeof(ifr)); strlcpy(ifr.ifr_name, session->netdev, IFNAMSIZ); - if (!iscsi_conn_iface_has_ip(session->netdev)) + if (!iscsi_conn_iface_has_ip(session->netdev, expected_family)) return -1; if (setsockopt(conn->socket_fd, SOL_SOCKET, SO_BINDTODEVICE, @@ -328,7 +326,7 @@ return -1; } - if (bind_conn_to_iface(conn, &conn->session->nrec.iface)) + if (bind_conn_to_iface(conn, &conn->session->nrec.iface, ss->ss_family)) return -1; onearg = 1; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/open-iscsi-2.1.11.suse+88.8e0635b3/usr/iscsiadm.c new/open-iscsi-2.1.12.suse+0.8f77cf16/usr/iscsiadm.c --- old/open-iscsi-2.1.11.suse+88.8e0635b3/usr/iscsiadm.c 2026-03-11 21:24:20.000000000 +0100 +++ new/open-iscsi-2.1.12.suse+0.8f77cf16/usr/iscsiadm.c 2026-07-15 22:44:58.000000000 +0200 @@ -1165,6 +1165,10 @@ if (op & OP_NEW || op & OP_UPDATE) { /* now add/update records */ list_for_each_entry(new_rec, rec_list, list) { + if (!iqn_name_valid(new_rec->name)) { + log_error("FW discovery Target Name invalid: ignoring it"); + continue; + } rc = idbm_add_node(new_rec, drec, op & OP_UPDATE); if (rc) log_error("Could not add/update " diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/open-iscsi-2.1.11.suse+88.8e0635b3/usr/iscsistart.c new/open-iscsi-2.1.12.suse+0.8f77cf16/usr/iscsistart.c --- old/open-iscsi-2.1.11.suse+88.8e0635b3/usr/iscsistart.c 2026-03-11 21:24:20.000000000 +0100 +++ new/open-iscsi-2.1.12.suse+0.8f77cf16/usr/iscsistart.c 2026-07-15 22:44:58.000000000 +0200 @@ -403,7 +403,10 @@ case 't': check_str_param_len(optarg, TARGET_NAME_MAXLEN, "targetname"); - strlcpy(config_rec.name, optarg, TARGET_NAME_MAXLEN); + if (!iqn_name_valid(optarg)) + log_error("iscsistart Target Name invalid: ignoring"); + else + strlcpy(config_rec.name, optarg, TARGET_NAME_MAXLEN); break; case 'g': config_rec.tpgt = atoi(optarg); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/open-iscsi-2.1.11.suse+88.8e0635b3/utils/Makefile new/open-iscsi-2.1.12.suse+0.8f77cf16/utils/Makefile --- old/open-iscsi-2.1.11.suse+88.8e0635b3/utils/Makefile 2026-03-11 21:24:20.000000000 +0100 +++ new/open-iscsi-2.1.12.suse+0.8f77cf16/utils/Makefile 2026-07-15 22:44:58.000000000 +0200 @@ -18,7 +18,7 @@ RULESDIR ?= $(etcdir)/udev/rules.d -IQN_PREFIX ?= "iqn.2016-04.com.open-iscsi" +IQN_PREFIX ?= iqn.2016-04.com.open-iscsi CFLAGS ?= -O2 -fno-inline -g CFLAGS += -Wall -Wextra -Wstrict-prototypes @@ -42,7 +42,7 @@ all: $(PROGRAMS) $(SCRIPTS_GENERATED) $(RULESFILES_GENERATED) $(SCRIPTS_GENERATED): %.sh: %.sh.template - $(SED) -e 's:@SBINDIR@:$(SBINDIR):' -e 's:@HOMEDIR@:$(HOMEDIR):' $? > $@ + $(SED) -e 's:@SBINDIR@:$(SBINDIR):' -e 's:@HOMEDIR@:$(HOMEDIR):' -e 's:@IQN_PREFIX@:$(IQN_PREFIX):' $? > $@ $(CHMOD) 755 $@ $(RULESFILES_GENERATED): %.rules: %.rules.template diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/open-iscsi-2.1.11.suse+88.8e0635b3/utils/iscsi-gen-initiatorname.sh.template new/open-iscsi-2.1.12.suse+0.8f77cf16/utils/iscsi-gen-initiatorname.sh.template --- old/open-iscsi-2.1.11.suse+88.8e0635b3/utils/iscsi-gen-initiatorname.sh.template 2026-03-11 21:24:20.000000000 +0100 +++ new/open-iscsi-2.1.12.suse+0.8f77cf16/utils/iscsi-gen-initiatorname.sh.template 2026-07-15 22:44:58.000000000 +0200 @@ -16,7 +16,7 @@ INAME_FILE="$INAME_DIR/initiatorname.iscsi" # our default IQN prefix -DEFAULT_IQN_PREFIX="iqn.1996-04.de.suse:01" +DEFAULT_IQN_PREFIX="@IQN_PREFIX@" # # set up comments for initiatorname files using variables
