Samba 4.17 Features added/changed

From SambaWiki

Samba 4.17 is ''Security Fixes_Only Mode.

Samba 4.17.10

Release Notes for Samba 4.17.10
July 19, 2023

This is a security release in order to address the following defects:

When winbind is used for NTLM authentication, a maliciously crafted request can trigger an out-of-bounds read in winbind and possibly crash it.
SMB2 packet signing is not enforced if an admin configured "server signing = required" or for SMB2 connections to Domain Controllers where SMB2 packet signing is mandatory.
An infinite loop bug in Samba's mdssvc RPC service for Spotlight can be triggered by an unauthenticated attacker by issuing a malformed RPC request.
Missing type validation in Samba's mdssvc RPC service for Spotlight can be used by an unauthenticated attacker to trigger a process crash in a shared RPC mdssvc worker process.
As part of the Spotlight protocol Samba discloses the server-side absolute path of shares and files and directories in search results.

Changes since 4.17.9

  • Ralph Boehme <>
  • Samuel Cabrero <>
  • Volker Lendecke <>
  • Stefan Metzmacher <>
  • BUG 15418: Secure channel faulty since Windows 10/11 update 07/2023.
Release Notes Samba 4.17.10

Samba 4.17.9

Release Notes for Samba 4.17.9
July 06, 2023

This is the latest stable release of the Samba 4.17 release series.

Changes since 4.17.8

  • Douglas Bagnall <>
  • Ralph Boehme <>
  • BUG 15275: smbd_scavenger crashes when service smbd is stopped.
  • BUG 15378: vfs_fruit might cause a failing open for delete.
  • Samuel Cabrero <>
  • Volker Lendecke <>
  • BUG 15361: winbind recurses into itself via rpcd_lsad.
  • BUG 15382: cli_list loops 100% CPU against pre-lanman2 servers.
  • BUG 15391: smbclient leaks fds with showacls.
  • Stefan Metzmacher <>
  • BUG 15374: aes256 smb3 encryption algorithms are not allowed in smb3_sid_parse().
  • BUG 15413: winbindd gets stuck on NT_STATUS_RPC_SEC_PKG_ERROR.
  • Jones Syue <>
  • BUG 15403: smbget memory leak if failed to download files recursively.
Release Notes Samba 4.17.9

Samba 4.17.8

Release Notes for Samba 4.17.8
May 11, 2023

This is the latest stable release of the Samba 4.17 release series.

Changes since 4.17.7

  • Jeremy Allison <>
  • BUG 15302: log flood: smbd_calculate_access_mask_fsp: Access denied: message level should be lower.
  • BUG 15306: Floating point exception (FPE) via cli_pull_send at source3/libsmb/clireadwrite.c.
  • Andrew Bartlett <>
  • BUG 15328: test_tstream_more_tcp_user_timeout_spin fails intermittently on Rackspace GitLab runners.
  • BUG 15270: Reduce flapping of ridalloc test.
  • BUG 15270: large_ldap test is unreliable.
  • Ralph Boehme <>
  • BUG 15329: New filename parser doesn't check veto files smb.conf parameter.
  • BUG 15354: mdssvc may crash when initializing.
  • Volker Lendecke <>
  • BUG 15313: Large directory optimization broken for non-lcomp path elements.
  • BUG 15357: streams_depot fails to create streams.
  • BUG 15358: shadow_copy2 and streams_depot don't play well together.
  • BUG 15366: wbinfo -u fails on ad dc with >1000 users.
  • Stefan Metzmacher <>
  • BUG 15317: winbindd idmap child contacts the domain controller without a need.
  • BUG 15318: idmap_autorid may fail to map sids of trusted domains for the first time.
  • BUG 15319: idmap_hash doesn't use ID_TYPE_BOTH for reverse mappings.
  • BUG 15323: net ads search -P doesn't work against servers in other domains.
  • BUG 15338: DS ACEs might be inherited to unrelated object classes.
  • BUG 15353: Temporary smbXsrv_tcon_global.tdb can't be parsed.
  • Andreas Schneider <>
  • BUG 15360: Setting veto files = /.*/ break listing directories.
  • Joseph Sutton <>
  • BUG 14810: CVE-2020-25720 [SECURITY] Create Child permission should not allow full write to all attributes (additional changes).
  • BUG 15329: Reduce flapping of ridalloc test.
  • Nathaniel W. Turner <>
  • BUG 15325: dsgetdcname: assumes local system uses IPv4.
 Release Notes Samba 4.17.8

Samba 4.17.7

Release Notes for Samba 4.17.7
March 29, 2023

This is a security release in order to address the following defects:

The Samba AD DC administration tool, when operating against a remote LDAP server, will by default send new or reset passwords over a signed-only connection.
The fix in 4.6.16, 4.7.9, 4.8.4 and 4.9.7 for CVE-2018-10919 Confidential attribute disclosure via LDAP filters was insufficient and an attacker may be able to obtain confidential BitLocker recovery keys from a Samba AD DC. Installations with such secrets in their Samba AD should assume they have been obtained and need replacing.

Changes since 4.17.6

  • Andrew Bartlett <>
  • Rob van der Linde <>
  • Joseph Sutton <>
 Release Notes Samba 4.17.7

Samba 4.17.6

Release Notes for Samba 4.17.6
March 09, 2023

This is the latest stable release of the Samba 4.17 release series.

Changes since 4.17.5

  • Jeremy Allison <>
  • BUG 15314: streams_xattr is creating unexpected locks on folders.
  • Andrew Bartlett <>
  • BUG 10635: Use of the Azure AD Connect cloud sync tool is now supported for password hash synchronisation, allowing Samba AD Domains to synchronise passwords with this popular cloud environment.
  • Ralph Boehme <>
  • BUG 15299: Spotlight doesn't work with latest macOS Ventura.
  • Volker Lendecke <>
  • BUG 15310: New samba-dcerpc architecture does not scale gracefully.
  • John Mulligan <>
  • BUG 15307: vfs_ceph incorrectly uses fsp_get_io_fd() instead of fsp_get_pathref_fd() in close and fstat.
  • Noel Power <>
  • BUG 15293: With clustering enabled samba-bgqd can core dump due to use after free.
  • baixiangcpp <>
  • BUG 15311: fd_load() function implicitly closes the fd where it should not.
Release Notes Samba 4.17.6

Samba 4.17.5

Release Notes for Samba 4.17.5
January 26, 2023

This is the latest stable release of the Samba 4.17 release series.

Changes since 4.17.4

  • Jeremy Allison <>
  • BUG 14808: smbc_getxattr() return value is incorrect.
  • BUG 15172: Compound SMB2 FLUSH+CLOSE requests from MacOSX are not handled correctly.
  • BUG 15210: synthetic_pathref AFP_AfpInfo failed errors.
  • BUG 15226: samba-tool gpo listall fails IPv6 only - finddcs() fails to find DC when there is only an AAAA record for the DC in DNS.
  • BUG 15236: smbd crashes if an FSCTL request is done on a stream handle.
  • BUG 15277: DFS links don't work anymore on Mac clients since 4.17.
  • BUG 15283: vfs_virusfilter segfault on access, directory edgecase (accessing NULL value).
  • Samuel Cabrero <>
  • BUG 15240: CVE-2022-38023 [SECURITY] Samba should refuse RC4 (aka md5) based SChannel on NETLOGON (additional changes).
  • Volker Lendecke <>
  • BUG 15243: %U for include directive doesn't work for share listing (netshareenum).
  • BUG 15266: Shares missing from netshareenum response in samba 4.17.4.
  • BUG 15269: ctdb: use-after-free in run_proc.
  • Stefan Metzmacher <>
  • BUG 15243: %U for include directive doesn't work for share listing (netshareenum).
  • BUG 15266: Shares missing from netshareenum response in samba 4.17.4.
  • BUG 15280: irpc_destructor may crash during shutdown.
  • BUG 15286: auth3_generate_session_info_pac leaks wbcAuthUserInfo.
  • Andreas Schneider <>
  • BUG 15268: smbclient segfaults with use after free on an optimized build.
  • Jones Syue <>
  • BUG 15282: smbstatus leaking files in msg.sock and msg.lock.
  • Andrew Walker <>
  • BUG 15164: Leak in wbcCtxPingDc2.
  • BUG 15265: Access based share enum does not work in Samba 4.16+.
  • BUG 15267: Crash during share enumeration.
  • BUG 15271: rep_listxattr on FreeBSD does not properly check for reads off end of returned buffer.
  • Florian Weimer <>
  • BUG 15281: Avoid relying on C89 features in a few places.
Release Notes Samba 4.17.5

Samba 4.17.4

Release Notes for Samba 4.17.4
December 15, 2022

This is the latest stable release of the Samba 4.17 release series.

It also contains security changes in order to address the following defects:

This is the Samba CVE for the Windows Kerberos RC4-HMAC Elevation of Privilege Vulnerability disclosed by Microsoft on Nov 8 2022.
A Samba Active Directory DC will issue weak rc4-hmac session keys for use between modern clients and servers despite all modern Kerberos implementations supporting the aes256-cts-hmac-sha1-96 cipher.
On Samba Active Directory DCs and members 'kerberos encryption types = legacy' would force rc4-hmac as a client even if the server supports aes128-cts-hmac-sha1-96 and/or aes256-cts-hmac-sha1-96.
This is the Samba CVE for the Windows Kerberos Elevation of Privilege Vulnerability disclosed by Microsoft on Nov 8 2022.
A service account with the special constrained delegation permission could forge a more powerful ticket than the one it was presented with.
The "RC4" protection of the NetLogon Secure channel uses the same algorithms as rc4-hmac cryptography in Kerberos, and so must also be assumed to be weak.

Note that there are several important behavior changes included in this release, which may cause compatibility problems interacting with system still expecting the former behavior. Please read the advisories of CVE-2022-37966, CVE-2022-38023, CVE-2022-37967 and CVE-2022-38023 carefully!

samba-tool got a new 'domain trust modify' subcommand

This allows "msDS-SupportedEncryptionTypes" to be changed on trustedDomain objects. Even against remote DCs (including Windows) using the --local-dc-ipaddress= (and other --local-dc-* options).

See 'samba-tool domain trust modify --help' for further details.

smb.conf changes

 Parameter Name                               Description             Default
 --------------                               -----------             -------
 allow nt4 crypto                             Deprecated              no
 allow nt4 crypto:COMPUTERACCOUNT             New
 kdc default domain supported enctypes        New (see manpage)
 kdc supported enctypes                       New (see manpage)
 kdc force enable rc4 weak session keys       New                     No
 reject md5 clients                           New Default, Deprecated Yes
 reject md5 servers                           New Default, Deprecated Yes
 server schannel                              Deprecated              Yes
 server schannel require seal                 New, Deprecated         Yes
 server schannel require seal:COMPUTERACCOUNT New
 winbind sealed pipes                         Deprecated              Yes

Changes since 4.17.3

  • Jeremy Allison <>
  • BUG 15224: pam_winbind uses time_t and pointers assuming they are of the same size.
  • Andrew Bartlett <>
  • Ralph Boehme <>
  • Stefan Metzmacher <>
  • Noel Power <>
  • BUG 15224: pam_winbind uses time_t and pointers assuming they are of the same size.
  • Anoop C S <>
  • BUG 15198: Prevent EBADF errors with vfs_glusterfs.
  • Andreas Schneider <>
  • Joseph Sutton <>
  • Nicolas Williams <>
Release Notes Samba 4.17.4

Samba 4.17.3

Release Notes for Samba 4.17.3
November 15, 2022

This is a security release in order to address the following defects:

Samba's Kerberos libraries and AD DC failed to guard against integer overflows when parsing a PAC on a 32-bit system, which allowed an attacker with a forged PAC to corrupt the heap.

Changes since 4.17.2

  • Joseph Sutton <>
  • Nicolas Williams <>
Release Notes Samba 4.17.3

Samba 4.17.2

Release Notes for Samba 4.16.6
October 25, 2022

This is a security release in order to address the following defect:

  • CVE-2022-3437: There is a limited write heap buffer overflow in the GSSAPI unwrap_des() and unwrap_des3() routines of Heimdal (included in Samba).
  • CVE-2022-3592: A malicious client can use a symlink to escape the exported directory.

Changes since 4.17.2

  • Volker Lendecke <>
  • Joseph Sutton <>
 Release Notes Samba 4.17.2

Samba 4.17.1

Release Notes for Samba 4.17.1
October 19, 2022

This is the latest stable release of the Samba 4.17 release series.

Changes since 4.17.0

  • Jeremy Allison <>
  • Douglas Bagnall <>
  • BUG #15189: Samba 4.5 sometimes cannot be upgraded to Samba 4.6 or later over DRS: WERROR_DS_DRA_MISSING_PARENT due to faulty GET_ANC.
  • BUG #15191: pytest: add file removal helpers for TestCaseInTempDir.
  • Andrew Bartlett <>
  • BUG #14611: [CVE-2021-20251[SECURITY] Bad password count not incremented atomically.
  • BUG #15182: Samba 4.5 sometimes cannot be upgraded to Samba 4.6 or later. over DRS: WERROR_DS_DRA_MISSING_PARENT due to faulty GET_ANC.
  • Ralph Boehme <>
  • BUG #15182: Flush on a named stream never completes.
  • Volker Lendecke <>
  • BUG #15151: vfs_gpfs silently garbles timestamps > year 2106.
  • Gary Lockyer <>
  • Stefan Metzmacher <>
  • BUG #15200: multi-channel socket passing may hit a race if one of the involved processes already existed.
  • BUG #15201: memory leak on temporary of struct imessaging_post_state and struct tevent_immediate on struct imessaging_context (in rpcd_spoolss and maybe others).
  • Noel Power <>
  • BUG #15205: Since popt1.19 various use after free errors using result of poptGetArg are now exposed.
  • Anoop C S <>
  • BUG #15192: Remove special case for O_CREAT in SMB_VFS_OPENAT from vfs_glusterfs.
  • Andreas Schneider <>
  • BUG #15169: GETPWSID in memory cache grows indefinetly with each NTLM auth.
  • Joseph Sutton <>
   Release Notes Samba 4.17.1

Samba 4.17.0

Release Announcements

Release Notes for 4.17.0
September 13, 2022

This is the first stable release of the Samba 4.17 release series.

Please read the release notes carefully before upgrading.


SMB Server performance improvements

The security improvements in recent releases (4.13, 4.14, 4.15, 4.16), mainly as protection against symlink races, caused performance regressions for meta data heavy workloads.

With 4.17 the situation improved a lot again:

  • Pathnames given by a client are devided into dirname and basename. The amount of syscalls to validate dirnames is reduced to 2 syscalls (openat, close) per component. On modern Linux kernels (>= 5.6) smbd makes use of the openat2() syscall with SOLVE_NO_SYMLINKS, in order to just use 2 syscalls (openat2, close) for the whole dirname.
  • Contended path based operations used to generate a lot of unsolicited wakeup events causing thundering herd problems, which lead to masive latencies for some clients. These events are now avoided in order to provide stable latencies and much higher throughput of open/close operations.

Configure without the SMB1 Server

It is now possible to configure Samba without support for the SMB1 protocol in smbd. This can be selected at configure time with either of the options:


By default (without either of these options set) Samba is configured to include SMB1 support (i.e. --with-smb1-server is the default). When Samba is configured without SMB1 support, none of the SMB1 code is included inside smbd except the minimal stub code needed to allow a client to connect as SMB1 and immediately negotiate the selected protocol into SMB2 (as a Windows server also allows).

None of the SMB1-only smb.conf parameters are removed when configured without SMB1, but these parameters are ignored by the smbd server. This allows deployment without having to change an existing smb.conf file.

This option allows sites, OEMs and integrators to configure Samba to remove the old and insecure SMB1 protocol from their products.

Note: that the Samba client libraries still support SMB1 connections even when Samba is configured as --without-smb1-server. This is to ensure maximum compatibility with environments containing old SMB1 servers.

Bronze bit and S4U support now also with MIT Kerberos 1.20

In 2020 Microsoft Security Response Team received another Kerberos-related report. Eventually, that led to a security update of the CVE-2020-17049, Kerberos KDC Security Feature Bypass Vulnerability, also known as a 'Bronze Bit'. With this vulnerability, a compromised service that is configured to use Kerberos constrained delegation feature could tamper with a service ticket that is not valid for delegation to force the KDC to accept it.

With the release of MIT Kerberos 1.20, Samba AD DC is able able to mitigate the 'Bronze Bit' attack. MIT Kerberos KDC's KDB (Kerberos Database Driver) API was changed to allow passing more details between KDC and KDB components. When built against MIT Kerberos, Samba AD DC supports MIT Kerberos 1.19 and 1.20 versions but 'Bronze Bit' mitigation is provided only with MIT Kerberos 1.20.

In addition to fixing the 'Bronze Bit' issue, Samba AD DC now fully supports S4U2Self and S4U2Proxy Kerberos extensions.

Note: the default (Heimdal-based) KDC was already fixed in 2021, see BUG #14642

Resource Based Constrained Delegation (RBCD) support

Samba AD DC built with MIT Kerberos 1.20 offers RBCD support now. With MIT Kerberos 1.20 we have complete RBCD support passing Sambas S4U testsuite.

samba-tool delegation got the 'add-principal' and 'del-principal' subcommands in order to manage RBCD.

To complete RBCD support and make it useful to Administrators we added the Asserted Identity [1] SID into the PAC for constrained delegation. This is available for Samba AD compiled with MIT Kerberos 1.20.

Note: the default (Heimdal-based) KDC does not support RBCD yet.
Kerberos Constrained Delegation Overview

Customizable DNS listening port

It is now possible to set a custom listening port for the builtin DNS service, making easy to host another DNS on the same system that would bind to the default port and forward the domain-specific queries to Samba using the custom port. This is the opposite configuration of setting a forwarder in Samba.

It makes possible to use another DNS server as a front and forward to Samba.

Dynamic DNS updates may not be proxied by the front DNS server when forwarding to Samba. Dynamic DNS update proxying depends on the features of the other DNS server used as a front.

CTDB changes

  • When Samba is configured with both --with-cluster-support and --systemd-install-services then a systemd service file for CTDB will be installed.
  • ctdbd_wrapper has been removed. ctdbd is now started directly from a systemd service file or init script.
  • The syntax for the ctdb.tunables configuration file has been relaxed. However, trailing garbage after the value, including comments, is no longer permitted. Please see ctdb-tunables(7) for more details.

Operation without the (unsalted) NT password hash

When Samba is configured with 'nt hash store = never' then Samba will no longer store the (unsalted) NT password hash for users in Active Directory. (Trust accounts, like computers, domain controllers and inter-domain trusts are not impacted).

In the next version of Samba the default for 'nt hash store' will change from 'always' to 'auto', where it will follow (behave as 'nt hash store = never' when 'ntlm auth = disabled' is set.

Security-focused deployments of Samba that have eliminated NTLM from their networks will find setting 'ntlm auth = disabled' with 'nt hash store = always' as a useful way to improve compliance with best-practice guidance on password storage (which is to always use an interated hash).

Note: that when 'nt hash store = never' is set, then arcfour-hmac-md5 Kerberos keys will not be available for users who subsequently change their password, as these keys derive their values from NT hashes. AES keys are stored by default for all deployments of Samba with Domain Functional Level 2008 or later, are supported by all modern clients, and are much more secure.

Finally, also note that password history in Active Directory is stored in nTPwdHistory using a series of NT hash values. Therefore the full password history feature is not available in this mode.

To provide some protection against password re-use previous Kerberos hash values (the current, old and older values are already stored) are used, providing a history length of 3.

There is one small limitation of this workaround: Changing the sAMAccountName, userAccountControl or userPrincipalName of an account can cause the Kerberos password salt to change. This means that after *both* an account rename and a password change, only the current password will be recognised for password history purposes.

Python API for smbconf

Samba's smbconf library provides a generic frontend to various configuration backends (plain text file, registry) as a C library. A new Python wrapper, importable as 'samba.smbconf' is available. An additional module, 'samba.samba3.smbconf', is also available to enable registry backend support. These libraries allow Python programs to read, and optionally write, Samba configuration natively.

JSON support for smbstatus

It is now possible to print detailed information in JSON format in the smbstatus program using the new option --json. The JSON output covers all the existing text output including sessions, connections, open files, byte-range locks, notifies and profile data with all low-level information maintained by Samba in the respective databases.

Protected Users security group

Samba AD DC now includes support for the Protected Users security group introduced in Windows Server 2012 R2. The feature reduces the attack surface of user accounts by preventing the use of weak encryption types. It also mitigates the effects of credential theft by limiting credential lifetime and scope.

The protections are intended for user accounts only, and service or computer accounts should not be added to the Protected Users group. User accounts added to the group are granted the following security protections:

  • NTLM authentication is disabled.
  • Kerberos ticket-granting tickets (TGTs) encrypted with RC4 are not issued to or accepted from affected principals. Tickets encrypted with AES, and service tickets encrypted with RC4, are not affected by this restriction.
  • The lifetime of Kerberos TGTs is restricted to a maximum of four hours.
  • Kerberos constrained and unconstrained delegation is disabled.

If the Protected Users group is not already present in the domain, it can be created with 'samba-tool group add'. The new '--special' parameter must be specified, with 'Protected Users' as the name of the group. An example command invocation is:

samba-tool group add 'Protected Users' --special

or against a remote server:

samba-tool group add 'Protected Users' --special -H ldap:// -U Administrator

The Protected Users group is identified in the domain by its having a RID of 525. Thus, it should only be created with samba-tool and the '--special' parameter, as above, so that it has the required RID to function correctly.


LanMan Authentication and password storage removed from the AD DC

The storage and authentication with LanMan passwords has been entirely removed from the Samba AD DC, even when "lanman auth = yes" is set.

smb.conf changes

 Parameter Name                          Description     Default
 --------------                          -----------     -------
 dns port                                New default     53
 fruit:zero_file_id                      New default     yes
 nt hash store                           New parameter   always
 smb1 unix extensions                    Replaces "unix extensions"
 volume serial number                    New parameter   -1
 winbind debug traceid                   New parameter   no


  • Ralph Boehme <>
  • BUG #15126: acl_xattr VFS module may unintentionally use filesystem permissions instead of ACL from xattr.
  • BUG #15153: Missing SMB2-GETINFO access checks from MS-SMB2
  • BUG #15161: assert failed: !is_named_stream(smb_fname)") at ../../lib/util/fault.c:197.
  • Volker Lendecke <>
  • BUG #15126: acl_xattr VFS module may unintentionally use filesystem permissions instead of ACL from xattr.
  • BUG #15161: assert failed: !is_named_stream(smb_fname)") at ../../lib/util/fault.c:197.
  • Stefan Metzmacher <>
  • BUG #15159: Cross-node multi-channel reconnects result in SMB2 Negotiate returning NT_STATUS_NOT_SUPPORTED.
  • Noel Power <>
  • BUG #15160: winbind at info level debug can coredump when processing


  • Anoop C S <>
  • BUG #15157: Make use of glfs_*at() API calls in vfs_glusterfs.


  • Jeremy Allison <>
  • BUG #15128: Possible use after free of connection_struct when iterating smbd_server_connection->connections.
  • Christian Ambach <>
  • BUG #15145: `net usershare add` fails with flag works with --long but fails with -l.
  • Ralph Boehme <>
  • BUG #15126: acl_xattr VFS module may unintentionally use filesystem permissions instead of ACL from xattr.
  • Stefan Metzmacher <>
  • BUG #15125: Performance regression on contended path based operations.
  • BUG #15148: Missing READ_LEASE break could cause data corruption.
  • Andreas Schneider <>
  • BUG #15141: libsamba-errors uses a wrong version number.
  • Joseph Sutton <>
  • BUG #15152: SMB1 negotiation can fail to handle connection errors.


  • Jeremy Allison <>
  • BUG #15143: New filename parser doesn't check veto files smb.conf parameter.
  • BUG #15144: 4.17.rc1 still uses symlink-race prone unix_convert()
  • BUG #15146: Backport fileserver related changed to 4.17.0rc2
  • Jule Anger <>
  • Volker Lendecke <>
  • BUG #15146: Backport fileserver related changed to 4.17.0rc2
  • Stefan Metzmacher <>
  • BUG #15125: Performance regression on contended path based operations
  • BUG #15146: Backport fileserver related changed to 4.17.0rc2
  • Andreas Schneider <>
  • BUG #15140: Fix issues found by coverity in smbstatus json code
  • BUG #15146: Backport fileserver related changed to 4.17.0rc2