CVE-2023-4154 dsdb/tests: Do not run SimpleDirsyncTests twice
[samba.git] / WHATSNEW.txt
1                    ==============================
2                    Release Notes for Samba 4.19.0
3                          September 04, 2023
4                    ==============================
5
6 This is the first stable release of the Samba 4.19 release series.
7 Please read the release notes carefully before upgrading.
8
9 NEW FEATURES/CHANGES
10 ====================
11
12 Migrated smbget to use common command line parser
13 -------------------------------------------------
14
15 The smbget utility implemented its own command line parsing logic. After
16 discovering an issue we decided to migrate it to use the common command line
17 parser. This has some advantages as you get all the feature it provides like
18 Kerberos authentication. The downside is that breaks the options interface.
19 The support for smbgetrc has been removed. You can use an authentication file
20 if needed, this is documented in the manpage.
21
22 Please check the smbget manpage or --help output.
23
24 gpupdate changes
25 ----------------
26
27 The libgpo.get_gpo_list function has been deprecated in favor of
28 an implementation written in python. The new function can be imported via
29 `import samba.gp`. The python implementation connects to Active Directory
30 using the SamDB module, instead of ADS (which is what libgpo uses).
31
32 Improved winbind logging and a new tool for parsing the winbind logs
33 --------------------------------------------------------------------
34
35 Winbind logs (if smb.conf 'winbind debug traceid = yes' is set) contain new
36 trace header fields 'traceid' and 'depth'.  Field 'traceid' allows to track the
37 trace records belonging to the same request.  Field 'depth' allows to track the
38 request nesting level. A new tool samba-log-parser is added for better log
39 parsing.
40
41 AD database prepared to FL 2016 standards for new domains
42 ---------------------------------------------------------
43
44 While Samba still provides only Functional Level 2008R2 by default,
45 Samba as an AD DC will now, in provision ensure that the blank
46 database is already prepared for Functional Level 2016, with AD Schema
47 2019.
48
49 This preparation is of the default objects in the database, adding
50 containers for Authentication Policies, Authentication Silos and AD
51 claims in particular.  These DB objects must be updated to allow
52 operation of the new features found in higher functional levels.
53
54 Kerberos Claims, Authentication Silos and NTLM authentication policies
55 ----------------------------------------------------------------------
56
57 An initial, partial implementation of Active Directory Functional
58 Level 2012, 2012R2 and 2016 is available in this release.
59
60 In particular Samba will issue Active Directory "Claims" in the PAC,
61 for member servers that support these, and honour in-directory
62 configuration for Authentication Policies and Authentication Silos.
63
64 The primary limitation is that while Samba can read and write claims
65 in the directory, and populate the PAC, Samba does not yet use them
66 for access control decisions.
67
68 While we continue to develop these features, existing domains can
69 test the feature by selecting the functional level in provision or
70 raising the DC functional level by setting
71
72  ad dc functional level = 2016
73
74 in the smb.conf
75
76 The smb.conf file on each DC must have 'ad dc functional level = 2016'
77 set to have the partially complete feature available.  This will also,
78 at first startup, update the server's own AD entry with the configured
79 functional level.
80
81 For new domains, add these parameters to 'samba-tool provision'
82
83 --option="ad dc functional level = 2016" --function-level=2016
84
85 The second option, setting the overall domain functional level
86 indicates that all DCs should be at this functional level.
87
88 To raise the domain functional level of an existing domain, after
89 updating the smb.conf and restarting Samba run
90 samba-tool domain schemaupgrade --schema=2019
91 samba-tool domain functionalprep --function-level=2016
92 samba-tool domain level raise --domain-level=2016 --forest-level=2016
93
94 Improved KDC Auditing
95 ---------------------
96
97 As part of the auditing required to allow successful deployment of
98 Authentication Policies and Authentication Silos, our KDC now provides
99 Samba-style JSON audit logging of all issued Kerberos tickets,
100 including if they would fail a policy that is not yet enforced.
101 Additionally most failures are audited, (after the initial
102 pre-validation of the request).
103
104 Kerberos Armoring (FAST) Support for Windows clients
105 ----------------------------------------------------
106
107 In domains where the domain controller functional level is set, as
108 above, to 2012, 2012_R2 or 2016, Windows clients will, if configured
109 via GPO, use FAST to protect user passwords between (in particular) a
110 workstation and the KDC on the AD DC.  This is a significant security
111 improvement, as weak passwords in an AS-REQ are no longer available
112 for offline attack.
113
114 Claims compression in the AD PAC
115 --------------------------------
116
117 Samba as an AD DC will compress "AD claims" using the same compression
118 algorithm as Microsoft Windows.
119
120 Resource SID compression in the AD PAC
121 --------------------------------------
122
123 Samba as an AD DC will now correctly populate the various PAC group
124 membership buffers, splitting global and local groups correctly.
125
126 Additionally, Samba marshals Resource SIDs, being local groups in the
127 member server's own domain, to only consume a header and 4 bytes per
128 group in the PAC, not a full-length SID worth of space each.  This is
129 known as "Resource SID compression".
130
131 Resource Based Constrained Delegation (RBCD) support in both MIT and Heimdal
132 -----------------------------------------------------------------------------
133
134 Samba AD DC built with MIT Kerberos (1.20 and later) has offered RBCD
135 support since Samba 4.17.  Samba 4.19 brings this feature to the
136 default Heimdal KDC.
137
138 Samba 4.17 added to samba-tool delegation the 'add-principal' and
139 'del-principal' subcommands in order to manage RBCD, and the database
140 changes made by these tools are now honoured by the Heimdal KDC once
141 Samba is upgraded.
142
143 Likewise, now both MIT (1.20 and later) and Heimdal KDCs add the
144 Asserted Identity [1] SID into the PAC for constrained delegation.
145
146 [1] https://docs.microsoft.com/en-us/windows-server/security/kerberos/kerberos-constrained-delegation-overview
147
148 New samba-tool support for silos, claims, sites and subnets.
149 ------------------------------------------------------------
150
151 samba-tool can now list, show, add and manipulate Authentication Silos
152 (silos) and Active Directory Authentication Claims (claims).
153
154 samba-tool can now list and show Active Directory sites and subnets.
155
156 A new Object Relational Model (ORM) based architecture, similar to
157 that used with Django, has been built to make adding new samba-tool
158 subcommands simpler and more consistent, with JSON output available
159 standard on these new commands.
160
161 Updated GnuTLS requirement / in-tree cryptography removal
162 ----------------------------------------------------------
163
164 Samba requires GnuTLS 3.6.13 and prefers GnuTLS 3.6.14 or later.
165
166 This has allowed Samba to remove all of our in-tree cryptography,
167 except that found in our Heimdal import.  Samba's runtime cryptography
168 needs are now all provided by GnuTLS.
169
170 (The GnuTLS vesion requirement is raised to 3.7.2 on systems without
171 the Linux getrandom())
172
173 We also use Python's cryptography module for our testing.
174
175 The use of well known cryptography libraries makes Samba easier for
176 end-users to validate and deploy, and for distributors to ship.  This
177 is the end of a very long journey for Samba.
178
179 Updated Heimdal import
180 ----------------------
181
182 Samba's Heimdal branch (known as lorikeet-heimdal) has been updated to
183 the current pre-8.0 (master) tree from upstream Heimdal, ensuring that
184 this vendored copy, included in our release remains as close as
185 possible to the current upstream code.
186
187 Revocation support in Heimdal KDC for PKINIT certificates
188 ---------------------------------------------------------
189
190 Samba will now correctly honour the revocation of 'smart card'
191 certificates used for PKINIT Kerberos authentication.
192
193 This list is reloaded each time the file changes, so no further action
194 other than replacing the file is required.  The additional krb5.conf
195 option is:
196
197  [kdc]
198         pkinit_revoke = FILE:/path/to/crl.pem
199
200 Information on the "Smart Card login" feature as a whole is at:
201  https://wiki.samba.org/index.php/Samba_AD_Smart_Card_Login
202
203 Protocol level testsuite for (Smart Card Logon) PKINIT
204 ------------------------------------------------------
205
206 Previously Samba's PKINIT support in the KDC was tested by use of
207 shell scripts around the client tools of MIT or Heimdal Kerberos.
208 Samba's independently written python testsuite has been extended to
209 validate KDC behaviour for PKINIT.
210
211 Require encrypted connection to modify unicodePwd on the AD DC
212 --------------------------------------------------------------
213
214 Setting the password on an AD account on should never be attempted
215 over a plaintext or signed-only LDAP connection.  If the unicodePwd
216 (or userPassword) attribute is modified without encryption (as seen by
217 Samba), the request will be rejected.  This is to encourage the
218 administrator to use an encrypted connection in the future.
219
220 NOTE WELL: If Samba is accessed via a TLS frontend or load balancer,
221 the LDAP request will be regarded as plaintext.
222
223 Samba AD TLS Certificates can be reloaded
224 -----------------------------------------
225
226 The TLS certificates used for Samba's AD DC LDAP server were
227 previously only read on startup, and this meant that when then expired
228 it was required to restart Samba, disrupting service to other users.
229
230  smbcontrol ldap_server reload-certs
231
232 This will now allow these certificates to be reloaded 'on the fly'
233
234 ================
235 REMOVED FEATURES
236 ================
237
238
239 smb.conf changes
240 ================
241
242   Parameter Name                          Description     Default
243   --------------                          -----------     -------
244   winbind debug traceid                   Add traceid     No
245   directory name cache size               Removed
246
247
248 CHANGES SINCE 4.19.0rc4
249 =======================
250
251 o  MikeLiu <mikeliu@qnap.com>
252    * BUG 15453: File doesn't show when user doesn't have permission if
253      aio_pthread is loaded.
254
255 o  Martin Schwenke <mschwenke@ddn.com>
256    * BUG 15451: ctdb_killtcp fails to work with --enable-pcap and libpcap ≥
257      1.9.1.
258
259
260 CHANGES SINCE 4.19.0rc3
261 =======================
262
263 o  Martin Schwenke <mschwenke@ddn.com>
264    * BUG 15460: Logging to stdout/stderr with DEBUG_SYSLOG_FORMAT_ALWAYS can log
265      to syslog.
266
267 o  Joseph Sutton <josephsutton@catalyst.net.nz>
268    * BUG 15458: ‘samba-tool domain level raise’ fails unless given a URL.
269
270
271 CHANGES SINCE 4.19.0rc2
272 =======================
273
274 o  Jeremy Allison <jra@samba.org>
275    * BUG 15420: reply_sesssetup_and_X() can dereference uninitialized tmp
276      pointer.
277    * BUG 15430: missing return in reply_exit_done().
278    * BUG 15432: TREE_CONNECT without SETUP causes smbd to use uninitialized
279      pointer.
280
281 o  Andrew Bartlett <abartlet@samba.org>
282    * BUG 15401: Avoid infinite loop in initial user sync with Azure AD Connect
283      when synchronising a large Samba AD domain.
284    * BUG 15407: Samba replication logs show (null) DN.
285
286 o  Stefan Metzmacher <metze@samba.org>
287    * BUG 15346: 2-3min delays at reconnect with smb2_validate_sequence_number:
288      bad message_id 2.
289    * BUG 15446: DCERPC_PKT_CO_CANCEL and DCERPC_PKT_ORPHANED can't be parsed.
290
291 o  Martin Schwenke <mschwenke@ddn.com>
292    * BUG 15438: CID 1539212 causes real issue when output contains only
293      newlines.
294
295 o  Joseph Sutton <josephsutton@catalyst.net.nz>
296    * BUG 15452: KDC encodes INT64 claims incorrectly.
297
298 o  Jones Syue <jonessyue@qnap.com>
299    * BUG 15449: mdssvc: Do an early talloc_free() in _mdssvc_open().
300
301
302 CHANGES SINCE 4.19.0rc1
303 =======================
304
305 o  Andrew Bartlett <abartlet@samba.org>
306    * BUG 9959: Windows client join fails if a second container CN=System exists
307     somewhere.
308
309 o  Noel Power <noel.power@suse.com>
310    * BUG 15435: regression DFS not working with widelinks = true.
311
312 o  Arvid Requate <requate@univention.de>
313    * BUG 9959: Windows client join fails if a second container CN=System exists
314     somewhere.
315
316 o  Joseph Sutton <josephsutton@catalyst.net.nz>
317    * BUG 15443: Heimdal fails to build on 32-bit FreeBSD.
318
319 o  Jones Syue <jonessyue@qnap.com>
320    * BUG 15441: samba-tool ntacl get segfault if aio_pthread appended.
321
322
323 KNOWN ISSUES
324 ============
325
326 https://wiki.samba.org/index.php/Release_Planning_for_Samba_4.19#Release_blocking_bugs
327
328
329 #######################################
330 Reporting bugs & Development Discussion
331 #######################################
332
333 Please discuss this release on the samba-technical mailing list or by
334 joining the #samba-technical:matrix.org matrix room, or
335 #samba-technical IRC channel on irc.libera.chat
336
337 If you do report problems then please try to send high quality
338 feedback. If you don't provide vital information to help us track down
339 the problem then you will probably be ignored.  All bug reports should
340 be filed under the Samba 4.1 and newer product in the project's Bugzilla
341 database (https://bugzilla.samba.org/).
342
343
344 ======================================================================
345 == Our Code, Our Bugs, Our Responsibility.
346 == The Samba Team
347 ======================================================================
348