s3:smbd: Fix sync dosmode fallback in async dosmode codepath
[Samba.git] / WHATSNEW.txt
blob8c6db3b3034fca9dd3a44d7276b15cf7fb88f41a
1                    ==============================
2                    Release Notes for Samba 4.11.2
3                           October 29, 2019
4                    ==============================
7 This is a security release in order to address the following defects:
9 o CVE-2019-10218: Client code can return filenames containing path separators.          
10 o CVE-2019-14833: Samba AD DC check password script does not receive the full
11                   password.
12 o CVE-2019-14847: User with "get changes" permission can crash AD DC LDAP server
13                   via dirsync.
15 =======
16 Details
17 =======
19 o  CVE-2019-10218:
20    Malicious servers can cause Samba client code to return filenames containing
21    path separators to calling code.
23 o  CVE-2019-14833:
24    When the password contains multi-byte (non-ASCII) characters, the check
25    password script does not receive the full password string.
27 o  CVE-2019-14847:
28    Users with the "get changes" extended access right can crash the AD DC LDAP
29    server by requesting an attribute using the range= syntax.
31 For more details and workarounds, please refer to the security advisories.
34 Changes since 4.11.1:
35 ---------------------
37 o  Jeremy Allison <jra@samba.org>
38    * BUG 14071: CVE-2019-10218 - s3: libsmb: Protect SMB1 and SMB2 client code
39      from evil server returned names.
41 o  Andrew Bartlett <abartlet@samba.org>
42    * BUG 12438: CVE-2019-14833: Use utf8 characters in the unacceptable
43      password.
44    * BUG 14040: CVE-2019-14847 dsdb: Correct behaviour of ranged_results when
45      combined with dirsync.
47 o  Björn Baumbach <bb@sernet.de>
48    * BUG 12438: CVE-2019-14833 dsdb: Send full password to check password
49      script.
52 #######################################
53 Reporting bugs & Development Discussion
54 #######################################
56 Please discuss this release on the samba-technical mailing list or by
57 joining the #samba-technical IRC channel on irc.freenode.net.
59 If you do report problems then please try to send high quality
60 feedback. If you don't provide vital information to help us track down
61 the problem then you will probably be ignored.  All bug reports should
62 be filed under the "Samba 4.1 and newer" product in the project's Bugzilla
63 database (https://bugzilla.samba.org/).
66 ======================================================================
67 == Our Code, Our Bugs, Our Responsibility.
68 == The Samba Team
69 ======================================================================
72 Release notes for older releases follow:
73 ----------------------------------------
75                    ==============================
76                    Release Notes for Samba 4.11.1
77                           October 18, 2019
78                    ==============================
81 This is the latest stable release of the Samba 4.11 release series.
84 Changes since 4.11.0:
85 ---------------------
87 o  Michael Adam <obnox@samba.org>
88    * BUG 14141: getpwnam and getpwuid need to return data for ID_TYPE_BOTH
89      group.
91 o  Jeremy Allison <jra@samba.org>
92    * BUG 14094: smbc_readdirplus() is incompatible with smbc_telldir() and
93      smbc_lseekdir().
94    * BUG 14152: s3: smbclient: Stop an SMB2-connection from blundering into
95      SMB1-specific calls.
97 o  Ralph Boehme <slow@samba.org>
98    * BUG 14137: Fix stale file handle error when using mkstemp on a share.
100 o  Isaac Boukris <iboukris@gmail.com>
101    * BUG 14106: Fix spnego fallback from kerberos to ntlmssp in smbd server.
102    * BUG 14140: Overlinking libreplace against librt and pthread against every
103      binary or library causes issues.
105 o  Günther Deschner <gd@samba.org>
106    * BUG 14130: s3-winbindd: Fix forest trusts with additional trust attributes.
107    * BUG 14134: auth/gensec: Fix non-AES schannel seal.
109 o  Amitay Isaacs <amitay@gmail.com>
110    * BUG 14147: Deleted records can be resurrected during recovery.
112 o  Björn Jacke <bj@sernet.de>
113    * BUG 14136: Fix uncaught exception in classicupgrade.
114    * BUG 14139: fault.c: Improve fault_report message text pointing to our wiki.
116 o  Bryan Mason <bmason@redhat.com>
117    * BUG 14128: s3:client: Use DEVICE_URI, instead of argv[0], for Device URI.
119 o  Stefan Metzmacher <metze@samba.org>
120    * BUG 14124: pam_winbind with krb5_auth or wbinfo -K doesn't work for users
121      of trusted domains/forests.
123 o  Mathieu Parent <math.parent@gmail.com>
124    * BUG 14131: Remove 'pod2man' as it is no longer needed.
126 o  Andreas Schneider <asn@samba.org>
127    * BUG 13884: Joining Active Directory should not use SAMR to set the
128      password.
129    * BUG 14140: Overlinking libreplace against librt and pthread against every
130      binary or library causes issues.
131    * BUG 14155: 'kpasswd' fails when built with MIT Kerberos.
133 o  Martin Schwenke <martin@meltin.net>
134    * BUG 14129: Exit code of ctdb nodestatus should not be influenced by deleted
135      nodes.
138 #######################################
139 Reporting bugs & Development Discussion
140 #######################################
142 Please discuss this release on the samba-technical mailing list or by
143 joining the #samba-technical IRC channel on irc.freenode.net.
145 If you do report problems then please try to send high quality
146 feedback. If you don't provide vital information to help us track down
147 the problem then you will probably be ignored.  All bug reports should
148 be filed under the "Samba 4.1 and newer" product in the project's Bugzilla
149 database (https://bugzilla.samba.org/).
152 ======================================================================
153 == Our Code, Our Bugs, Our Responsibility.
154 == The Samba Team
155 ======================================================================
158 ----------------------------------------------------------------------
161                    ==============================
162                    Release Notes for Samba 4.11.0
163                          September 17, 2019
164                    ==============================
167 This is the first stable release of the Samba 4.11 release series.
168 Please read the release notes carefully before upgrading.
171 UPGRADING
172 =========
174 AD Database compatibility
175 -------------------------
177 Samba 4.11 has changed how the AD database is stored on disk. AD users should
178 not really be affected by this change when upgrading to 4.11. However, AD
179 users should be extremely careful if they need to downgrade from Samba 4.11 to
180 an older release.
182 Samba 4.11 maintains database compatibility with older Samba releases. The
183 database will automatically get rewritten in the new 4.11 format when you
184 first start the upgraded samba executable.
186 However, when downgrading from 4.11 you will need to manually downgrade the AD
187 database yourself. Note that you will need to do this step before you install
188 the downgraded Samba packages. For more details, see:
189 https://wiki.samba.org/index.php/Downgrading_an_Active_Directory_DC
191 When either upgrading or downgrading, users should also avoid making any
192 database modifications between installing the new Samba packages and starting
193 the samba executable.
195 SMB1 is disabled by default
196 ---------------------------
198 The defaults of 'client min protocol' and 'server min protocol'
199 have been changed to SMB2_02.
201 This means clients without support for SMB2 or SMB3 are no longer
202 able to connect to smbd (by default).
204 It also means client tools like smbclient and other,
205 as well as applications making use of libsmbclient are no longer
206 able to connect to servers without SMB2 or SMB3 support (by default).
208 It's still possible to allow SMB1 dialects, e.g. NT1, LANMAN2
209 and LANMAN1 for client and server, as well as CORE and COREPLUS on
210 the client.
212 Note that most commandline tools e.g. smbclient, smbcacls and others
213 also support the '--option' argument to overwrite smb.conf options,
214 e.g. --option='client min protocol=NT1' might be useful.
216 As Microsoft no longer installs SMB1 support in recent releases
217 or uninstalls it after 30 days without usage, the Samba Team
218 tries to get remove the SMB1 usage as much as possible.
220 SMB1 is officially deprecated and might be removed step by step
221 in the following years. If you have a strong requirement for SMB1
222 (except for supporting old Linux Kernels), please file a bug
223 at https://bugzilla.samba.org and let us know about the details.
225 LanMan and plaintext authentication deprecated
226 ----------------------------------------------
228 The "lanman auth" and "encrypt passwords" parameters are deprecated
229 with this release as both are only applicable to SMB1 and are quite
230 insecure.  NTLM, NTLMv2 and Kerberos authentication are unaffected, as
231 "encrypt passwords = yes" has been the default since Samba 3.0.0.
233 If you have a strong requirement for these authentication protocols,
234 please file a bug at https://bugzilla.samba.org and let us know about
235 the details.
237 BIND9_FLATFILE deprecated
238 -------------------------
240 The BIND9_FLATFILE DNS backend is deprecated in this release and will
241 be removed in the future.  This was only practically useful on a single
242 domain controller or under expert care and supervision.
244 This release therefore deprecates the "rndc command" smb.conf
245 parameter, which is used to support this configuration.  After writing
246 out a list of DCs permitted to make changes to the DNS Zone "rndc
247 command" is called with reload to tell the 'named' server if a DC was
248 added/removed to to the domain.
251 NEW FEATURES/CHANGES
252 ====================
254 Default samba process model
255 ---------------------------
257 The default for the '--model' argument passed to the samba executable has changed
258 from 'standard' to 'prefork'. This means a difference in the number of samba
259 child processes that are created to handle client connections. The previous
260 default would create a separate process for every LDAP or NETLOGON client
261 connection. For a network with a lot of persistent client connections, this
262 could result in significant memory overhead.  Now, with the new default of
263 'prefork', the LDAP, NETLOGON, and KDC services will create a fixed number of
264 worker processes at startup and share the client connections amongst these
265 workers. The number of worker processes can be configured by the 'prefork
266 children' setting in the smb.conf (the default is 4).
268 Authentication Logging
269 ----------------------
271 Winbind now logs PAM_AUTH and NTLM_AUTH events, a new attribute "logonId" has
272 been added to the Authentication JSON log messages.  This contains a random
273 logon id that is generated for each PAM_AUTH and NTLM_AUTH request and is passed
274 to SamLogon, linking the windbind and SamLogon requests.
276 The serviceDescription of the messages is set to "winbind", the authDescription
277 is set to one of:
278    "PASSDB, <command>, <pid>"
279    "PAM_AUTH, <command>, <pid>"
280    "NTLM_AUTH, <command>, <pid>"
281 where:
282    <command> is the name of the command makinmg the winbind request i.e. wbinfo
283    <pid>     is the process id of the requesting process.
285 The version of the JSON Authentication messages has been changed from 1.1 to
286 1.2.
288 LDAP referrals
289 --------------
291 The scheme of returned LDAP referrals now reflects the scheme of the original
292 request, i.e. referrals received via ldap are prefixed with "ldap://"
293 and those over ldaps are prefixed with "ldaps://".
295 Previously all referrals were prefixed with "ldap://".
297 Bind9 logging
298 -------------
300 It is now possible to log the duration of DNS operations performed by Bind9.
301 This should aid future diagnosis of performance issues and could be used to
302 monitor DNS performance. The logging is enabled by setting log level to
303 "dns:10" in smb.conf.
305 The logs are currently human readable text only, i.e. no JSON formatted output.
307 Log lines are of the form:
309     <function>: DNS timing: result: [<result>] duration: (<duration>)
310     zone: [<zone>] name: [<name>] data: [<data>]
312     durations are in microseconds.
314 Default schema updated to 2012_R2
315 ---------------------------------
317 Default AD schema changed from 2008_R2 to 2012_R2.  2012_R2 functional level
318 is not yet available.  Older schemas can be used by provisioning with the
319 '--base-schema' argument.  Existing installations can be updated with the
320 samba-tool command "domain schemaupgrade".
322 Samba's replication code has also been improved to handle replication
323 with the 2012 schema (the core of this replication fix has also been
324 backported to 4.9.11 and will be in a 4.10.x release).
326 For more about how the AD schema relates to overall Windows compatibility,
327 please read:
328 https://wiki.samba.org/index.php/Windows_2012_Server_compatibility
330 GnuTLS 3.2 required
331 -------------------
333 Samba is making efforts to remove in-tree cryptographic functionality,
334 and to instead rely on externally maintained libraries.  To this end,
335 Samba has chosen GnuTLS as our standard cryptographic provider.
337 Samba now requires GnuTLS 3.2 to be installed (including development
338 headers at build time) for all configurations, not just the Samba AD
341 NOTE WELL: The use of GnuTLS means that Samba will honour the
342 system-wide 'FIPS mode' (a reference to the US FIPS-140 cryptographic
343 standard) and so will not operate in many still common situations if
344 this system-wide parameter is in effect, as many of our protocols rely
345 on outdated cryptography.
347 A future Samba version will mitigate this to some extent where good
348 cryptography effectively wraps bad cryptography, but for now that above
349 applies.
351 samba-tool improvements
352 -----------------------
354 A new "samba-tool contact" command has been added to allow the
355 command-line manipulation of contacts, as used for address book
356 lookups in LDAP.
358 The "samba-tool [user|group|computer|group|contact] edit" command has been
359 improved to operate more pleasantly on international character sets.
361 100,000 USER and LARGER Samba AD DOMAINS
362 ========================================
364 Extensive efforts have been made to optimise Samba for use in
365 organisations (for example) targeting 100,000 users, plus 120,000
366 computer objects, as well as large number of group memberships.
368 Many of the specific efforts are detailed below, but the net results
369 is to remove barriers to significantly larger Samba deployments
370 compared to previous releases.
372 Reindex performance improvements
373 --------------------------------
375 The performance of samba-tool dbcheck --reindex has been improved,
376 especially for large domains.
378 join performance improvements
379 -----------------------------
381 The performance of samba-tool domain join has been improved,
382 especially for large domains.
384 LDAP Server memory improvements
385 -------------------------------
387 The LDAP server has improved memory efficiency, ensuring that large
388 LDAP responses (for example a search for all objects) is not copied
389 multiple times into memory.
391 Setting lmdb map size
392 ---------------------
394 It is now possible to set the lmdb map size (the maximum permitted
395 size for the database).  "samba-tool" now accepts the
396 "--backend-store-size" i.e. --backend-store-size=4Gb.  If not
397 specified it defaults to 8Gb.
399 This option is avaiable for the following sub commands:
400  * domain provision
401  * domain join
402  * domain dcpromo
403  * drs clone-dc-database
405 LDB "batch_mode"
406 ----------------
408 To improve performance during batch operations i.e. joins, ldb now
409 accepts a "batch_mode" option.  However to prevent any index or
410 database inconsistencies if an operation fails, the entire transaction
411 will be aborted at commit.
413 New LDB pack format
414 -------------------
416 On first use (startup of 'samba' or the first transaction write)
417 Samba's sam.ldb will be updated to a new more efficient pack format.
418 This will take a few moments.
420 New LDB <= and >= index mode to improve replication performance
421 ---------------------------------------------------------------
423 As well as a new pack format, Samba's sam.ldb uses a new index format
424 allowing Samba to efficiently select objects changed since the last
425 replication cycle.  This in turn improves performance during
426 replication of large domains.
428 https://wiki.samba.org/index.php/LDB_Greater_than_and_Less_than_indexing
430 Improvements to ldb search performance
431 --------------------------------------
433 Search performance on large LDB databases has been improved by
434 reducing memory allocations made on each object.
436 Improvements to subtree rename performance
437 ------------------------------------------
439 Improvements have been made to Samba's handling of subtree renames,
440 for example of containers and organisational units, however large
441 renames are still not recommended.
443 CTDB changes
444 ============
446 * nfs-linux-kernel-callout now defaults to using systemd service names
448   The Red Hat service names continue to be the default.
450   Other distributions should patch this file when packaging it.
452 * The onnode -o option has been removed
454 * ctdbd logs when it is using more than 90% of a CPU thread
456   ctdbd is single threaded, so can become saturated if it uses the
457   full capacity of a CPU thread.  To help detect this situation, ctdbd
458   now logs messages when CPU utilisation exceeds 90%.  Each change in
459   CPU utilisation over 90% is logged.  A message is also logged when
460   CPU utilisation drops below the 90% threshold.
462 * Script configuration variable CTDB_MONITOR_SWAP_USAGE has been removed
464   05.system.script now monitors total memory (i.e. physical memory +
465   swap) utilisation using the existing CTDB_MONITOR_MEMORY_USAGE
466   script configuration variable.
468 CephFS Snapshot Integration
469 ---------------------------
471 CephFS snapshots can now be exposed as previous file versions using the new
472 ceph_snapshots VFS module. See the vfs_ceph_snapshots(8) man page for details.
475 REMOVED FEATURES
476 ================
478 Web server
479 ----------
481 As a leftover from work related to the Samba Web Administration Tool (SWAT),
482 Samba still supported a Python WSGI web server (which could still be turned on
483 from the 'server services' smb.conf parameter). This service was unused and has
484 now been removed from Samba.
486 samba-tool join subdomain
487 -------------------------
489 The subdomain role has been removed from the join command.  This option did
490 not work and has no tests.
492 Python2 support
493 ---------------
495 Samba 4.11 will not have any runtime support for Python 2.
497 If you are building Samba using the '--disable-python' option
498 (i.e. you're excluding all the run-time Python support), then this
499 will continue to work on a system that supports either python2 or
500 python3.
502 To build Samba with python2 you *must* set the 'PYTHON' environment
503 variable for both the 'configure' and 'make' steps, i.e.
504    'PYTHON=python2 ./configure'
505    'PYTHON=python2 make'
506 This will override the python3 default.
508 Except for this specific build-time use of python2, Samba now requires
509 Python 3.4 as a minimum.
511 smb.conf changes
512 ================
514   Parameter Name                     Description                Default
515   --------------                     -----------                -------
517   allocation roundup size            Default changed/           0
518                                      Deprecated
519   client min protocol                Changed default            SMB2_02
520   server min protocol                Changed default            SMB2_02
521   mangled names                      Changed default            illegal
522   web port                           Removed
523   fruit:zero_file_id                 Changed default            False
524   debug encryption                   New: dump encryption keys  False
525   rndc command                       Deprecated
526   lanman auth                        Deprecated
527   encrypt passwords                  Deprecated
530 CHANGES SINCE 4.11.0rc4
531 =======================
534 CHANGES SINCE 4.11.0rc3
535 =======================
537 o  Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
538    * BUG 14049: ldb: Don't try to save a value that isn't there.
539    * ldb_dn: Free dn components on explode failure.
540    * ldb: Do not allow adding a DN as a base to itself.
542 o  Andrew Bartlett <abartlet@samba.org>
543    * ldb: Release ldb 2.0.7.
544    * BUG 13695: ldb: Correct Pigeonhole principle validation in
545      ldb_filter_attrs().
546    * BUG 14049: Fix ldb dn crash.
547    * BUG 14117: Deprecate "lanman auth = yes" and "encrypt passwords = no".
549 o  Ralph Boehme <slow@samba.org>
550    * BUG 14038: Fix compiling ctdb on older systems lacking POSIX robust
551      mutexes.
552    * BUG 14121: smbd returns bad File-ID on filehandle used to create a file or
553      directory.
555 o  Poornima G <pgurusid@redhat.com>
556    * BUG 14098: vfs_glusterfs: Use pthreadpool for scheduling aio operations.
558 o  Stefan Metzmacher <metze@samba.org>
559    * BUG 14055: Add the target server name of SMB 3.1.1 connections as a hint to
560      load balancers or servers with "multi-tenancy" support.
561    * BUG 14113: Fix byte range locking bugs/regressions.
563 o  Swen Schillig <swen@linux.ibm.com>
564    * ldb: Fix mem-leak if talloc_realloc fails.
566 o  Evgeny Sinelnikov <sin@altlinux.org>
567    * BUG 14007: Fix join with don't exists machine account.
569 o  Martin Schwenke <martin@meltin.net>
570    * BUG 14085: ctdb-recoverd: Only check for LMASTER nodes in the VNN map.
573 CHANGES SINCE 4.11.0rc2
574 =======================
576 o  Michael Adam <obnox@samba.org>
577    * BUG 13972: Different Device Id for GlusterFS FUSE mount is causing data
578      loss in CTDB cluster.
580 o  Jeremy Allison <jra@samba.org>
581    * BUG 14035: CVE-2019-10197: Permissions check deny can allow user to escape
582      from the share.
584 o  Andrew Bartlett <abartlet@samba.org>
585    * BUG 14059: ldb: Release ldb 2.0.6 (log database repack so users know what
586      is happening).
587    * BUG 14092: docs: Deprecate "rndc command" for Samba 4.11.
589 o  Tim Beale <timbeale@catalyst.net.nz>
590    * BUG 14059: ldb: Free memory when repacking database.
592 o  Ralph Boehme <slow@samba.org>
593    * BUG 14089: vfs_default: Use correct flag in vfswrap_fs_file_id.
594    * BUG 14090: vfs_glusterfs: Initialize st_ex_file_id, st_ex_itime and
595      st_ex_iflags.
597 o  Anoop C S <anoopcs@redhat.com>
598    * BUG 14093: vfs_glusterfs: Enable profiling for file system operations.
600 o  Aaron Haslett <aaronhaslett@catalyst.net.nz>
601    * BUG 14059: Backport sambadowngradedatabase for v4.11.
603 o  Stefan Metzmacher <metze@samba.org>
604    * BUG 14035: CVE-2019-10197: Permissions check deny can allow user to escape
605      from the share.
607 o  Christof Schmitt <cs@samba.org>
608    * BUG 14032: vfs_gpfs: Implement special case for denying owner access to
609      ACL.
611 o  Martin Schwenke <martin@meltin.net>
612    * BUG 14084: Avoid marking a node as connected before it can receive packets.
613    * BUG 14086: Fix onnode test failure with ShellCheck >= 0.4.7.
614    * BUG 14087: ctdb-daemon: Stop "ctdb stop" from completing before freezing
615      databases.
618 KNOWN ISSUES
619 ============
621 https://wiki.samba.org/index.php/Release_Planning_for_Samba_4.11#Release_blocking_bugs
624 #######################################
625 Reporting bugs & Development Discussion
626 #######################################
628 Please discuss this release on the samba-technical mailing list or by
629 joining the #samba-technical IRC channel on irc.freenode.net.
631 If you do report problems then please try to send high quality
632 feedback. If you don't provide vital information to help us track down
633 the problem then you will probably be ignored.  All bug reports should
634 be filed under the Samba 4.1 and newer product in the project's Bugzilla
635 database (https://bugzilla.samba.org/).
638 ======================================================================
639 == Our Code, Our Bugs, Our Responsibility.
640 == The Samba Team
641 ======================================================================