r1781: don't crash when xp sp2 sends a fnpcn() without prior ffpcn()
[Samba.git] / WHATSNEW.txt
blobd076c510762e519bedf761d181c41a0e10353028
1                  ==============================
2                  Release Notes for Samba 2.2.10
3                           July 22, 2004
4                  ==============================
7 ######################## SECURITY RELEASE ########################
9 Summary:       Potential Buffer Overrun in Samba 2.2.x
10 CVE ID:        CAN-2004-0686
11                (http://cve.mitre.org/)
13 This is the latest stable release of the Samba 2.2 code base.
14 There are no further Samba 2.2.x releases planned at this time.
16 -------------
17 CAN-2004-0686
18 -------------
20 Affected Versions:      Samba 2.2.0 through 2.2.9
22 A buffer overrun has been located in the code used to support
23 the 'mangling method = hash' smb.conf option.   Affected Samba 
24 2.2 installations can avoid this possible security bug by using 
25 the hash2 mangling method.  Server installations requiring 
26 the hash mangling method are encouraged to upgrade to Samba v2.2.10 
27 or v3.0.5.
30 Older releases notes for 2.2.x distributions follow
32        ------------------------------------------------------
34                  =============================
35                  Release Notes for Samba 2.2.9
36                           May 8, 2004
37                  =============================
39 This is the latest stable release of the Samba 2.2 code base.
40 This is a maintenance release of Samba 2.2.8a to address the 
41 problem with user password changes after applying the Microsoft 
42 hotfix described in KB282741 to Windows NT 4.0/200x/XP clients.  
43 No other changes have been applied since Samba 2.2.8a.
45 There are no further Samba 2.2.x releases planned at this time.
48        ------------------------------------------------------
50             ===========================================
51             What's new in Samba 2.2.8a - 7th April 2003
52             ===========================================
54              ****************************************
55              * IMPORTANT: Security bugfix for Samba *
56              ****************************************
58 Summary
59 -------
61 Digital Defense, Inc. has alerted the Samba Team to a serious 
62 vulnerability in all stable versions of Samba currently shipping. 
63 The Common Vulnerabilities and Exposures (CVE) project has assigned 
64 the ID CAN-2003-0201 to this defect.
66 This vulnerability, if exploited correctly, leads to an anonymous 
67 user gaining root access on a Samba serving system. All versions 
68 of Samba up to and including Samba 2.2.8 are vulnerable. An active 
69 exploit of the bug has been reported in the wild. Alpha versions of 
70 Samba 3.0 and above are *NOT* vulnerable.
73 Credit
74 ------
76 The Samba Team would like to thank Erik Parker and the team at
77 Digital Defense, Inc. for their efforts spent in the responsible 
78 and timely reporting of this bug.
81 Patch Availability
82 ------------------
84 The Samba 2.2.8a release contains only updates to address this 
85 security issue. A roll-up patch for release 2.2.7a and 2.0.10 
86 addressing both CAN-2003-0201 and CAN-2003-0085 can be obtained 
87 from http://www.samba.org/samba/ftp/patches/security/.
90             ========================================
93 Older releases notes for 2.2.x distributions follow
95 -----------------------------------------------------------------
96 The release notes for 2.2.8 follow:
98             ****************************************
99             * IMPORTANT: Security bugfix for Samba *
100             ****************************************
102 Summary
103 -------
105 The SuSE security audit team, in particular Sebastian Krahmer
106 <krahmer@suse.de>, has found an flaw in the Samba main smbd code which
107 could allow an external attacker to remotely and anonymously gain
108 Super User (root) privileges on a server running a Samba server.
110 This flaw exists in previous versions of Samba from 2.0.x to 2.2.7a
111 inclusive.  This is serious problem and all sites should either
112 upgrade to Samba 2.2.8 immediately or prohibit access to TCP ports 139
113 and 445. Advice on how to protect an unpatched Samba server created by
114 Andrew Tridgell, the leader of the Samba Team, is given at the end of
115 this section.
117 The SMB/CIFS protocol implemented by Samba is vulnerable to many
118 attacks, even without specific security holes.  The TCP ports 139 and
119 the new port 445 (used by Win2k and the Samba 3.0 alpha code in
120 particular) should never be exposed to untrusted networks.
122 Description
123 -----------
125 A buffer overrun condition exists in the SMB/CIFS packet fragment
126 re-assembly code in smbd which would allow an attacker to cause smbd
127 to overwrite arbitrary areas of memory in its own process address
128 space. This could allow a skilled attacker to inject binary specific
129 exploit code into smbd.
131 This version of Samba adds explicit overrun and overflow checks on
132 fragment re-assembly of SMB/CIFS packets to ensure that only valid
133 re-assembly is performed by smbd.
135 In addition, the same checks have been added to the re-assembly
136 functions in the client code, making it safe for use in other
137 services.
139 Credit
140 ------
142 This security flaw was discovered and reported to the Samba Team by
143 Sebastian Krahmer <krahmer@suse.de> of the SuSE Security Audit Team.  
144 The fix was prepared by Jeremy Allison and reviewed by engineers from
145 the Samba Team, SuSE, HP, SGI, Apple, and the Linux vendor engineers
146 on the Linux Vendor security mailing list.
148 The Samba Team would like to thank SuSE and Sebastian Krahmer for
149 their excellent auditing work and for drawing attention to this flaw.
151 Patch Availability
152 -----------------
154 As this is a security issue, patches for this flaw specific to earlier
155 versions of Samba will be and posted on the samba-technical@samba.org
156 mailing list as requested.
159 ************************************
160 Protecting an unpatched Samba server
161 ************************************
163   Samba Team, March 2003
165   This is a note on how to provide your Samba server some
166   protection against the recently discovered remote security
167   hole if you are unable to upgrade to the fixed version
168   immediately. Even if you do upgrade you might like to think
169   about the suggestions in this note to provide you with
170   additional levels of protection.
173   Using host based protection
174   ---------------------------
176   In many installations of Samba the greatest threat comes for
177   outside your immediate network. By default Samba will accept
178   connections from any host, which means that if you run an
179   insecure version of Samba on a host that is directly
180   connected to the Internet you can be especially vulnerable.
182   One of the simplest fixes in this case is to use the 'hosts
183   allow' and 'hosts deny' options in the Samba smb.conf
184   configuration file to only allow access to your server from a
185   specific range of hosts. An example might be:
187     hosts allow = 127.0.0.1 192.168.2.0/24 192.168.3.0/24
188     hosts deny = 0.0.0.0/0
190   The above will only allow SMB connections from 'localhost'
191   (your own computer) and from the two private networks
192   192.168.2 and 192.168.3. All other connections will be
193   refused connections as soon as the client sends its first
194   packet. The refusal will be marked as a 'not listening on
195   called name' error.
198   Using interface protection
199   --------------------------
201   By default Samba will accept connections on any network
202   interface that it finds on your system. That means if you
203   have a ISDN line or a PPP connection to the Internet then
204   Samba will accept connections on those links. This may not be
205   what you want.
207   You can change this behavior using options like the
208   following:
210     interfaces = eth* lo
211     bind interfaces only = yes
213   that tells Samba to only listen for connections on interfaces
214   with a name starting with 'eth' such as eth0, eth1, plus on
215   the loopback interface called 'lo'. The name you will need to
216   use depends on what OS you are using, in the above I used the
217   common name for ethernet adapters on Linux.
219   If you use the above and someone tries to make a SMB
220   connection to your host over a PPP interface called 'ppp0'
221   then they will get a TCP connection refused reply. In that
222   case no Samba code is run at all as the operating system has
223   been told not to pass connections from that interface to any
224   process.
227   Using a firewall
228   ----------------
230   Many people use a firewall to deny access to services that
231   they don't want exposed outside their network. This can be a
232   very good idea, although I would recommend using it in
233   conjunction with the above methods so that you are protected
234   even if your firewall is not active for some reason.
236   If you are setting up a firewall then you need to know what
237   TCP and UDP ports to allow and block. Samba uses the
238   following:
240     UDP/137    - used by nmbd
241     UDP/138    - used by nmbd
242     TCP/139    - used by smbd
243     TCP/445    - used by smbd
245   The last one is important as many older firewall setups may
246   not be aware of it, given that this port was only added to
247   the protocol in recent years.
250   Using a IPC$ share deny
251   -----------------------
253   If the above methods are not suitable, then you could also
254   place a more specific deny on the IPC$ share that is used in
255   the recently discovered security hole. This allows you to
256   offer access to other shares while denying access to IPC$
257   from potentially untrustworthy hosts.
259   To do that you could use:
261     [ipc$]
262         hosts allow = 192.168.115.0/24 127.0.0.1
263         hosts deny = 0.0.0.0/0
265   this would tell Samba that IPC$ connections are not allowed
266   from anywhere but the two listed places (localhost and a
267   local subnet). Connections to other shares would still be
268   allowed. As the IPC$ share is the only share that is always
269   accessible anonymously this provides some level of protection
270   against attackers that do not know a username/password for
271   your host.
273   If you use this method then clients will be given a 'access
274   denied' reply when they try to access the IPC$ share. That
275   means that those clients will not be able to browse shares,
276   and may also be unable to access some other resources.
278   I don't recommend this method unless you cannot use one of
279   the other methods listed above for some reason.
282   Upgrading Samba
283   ---------------
285   Of course the best solution is to upgrade Samba to a version
286   where the bug has been fixed. If you wish to also use one of
287   the additional measures above then that would certainly be a
288   good idea.
290   Please check regularly on http://www.samba.org/ for updates
291   and important announcements.
294             ****************************************
295             ****************************************
298 Changes since 2.2.7a
299 ---------------------
301 New Parameters
303     * acl compatibility
305 Additional Changes:
306     See the cvs log for SAMBA_2_2 for more details
308 1)  smbumount lazy patch from Mandrake
309 2)  Check for too many processes *before* the fork.
310 3)  make sure we don't run over the end of 'name' in unix_convert()
311 4)  set umask to 0 before creating socket directory.
312 5)  Fix the LARGE_SMB_OFF_T problems and allow smbd to do the right 
313     thing in interactive mode when a log file dir is also specified.
314 6)  Fix delete on close semantics to match W2K.
315 7)  Correctly return access denied on share mode deny when we can't 
316     open the file.
317 8)  Always use safe_strcpy not pstrcpy for malloc()'d strings
318 9)  Fixes for HP-UX only having limited POSIX lock range
319 10) Added uid/gid caching code. Reduces load on winbindd.
320 11) Removed extra copy of server name in the printername field (it was
321     mangling the the name to be \\server\\\server\printer
322 12) Fix dumb perror used without errno being set.
323 13) Do retries correctly if the connection to the DC has failed.
324 14) Correctly check for inet_addr fail.
325 15) Ensure we use getgrnam() unless BROKEN_GETGRNAM is defined.
326 16) Fix for missing if (setting_acls) on default perms.
327 17) Fix to cache the sidtype
328 18) fix printer settings on Solaris (big-endian) print servers.
329     ASCII -> UNICODE conversion bug.
330 19) Small fix check correct error return.
331 20) Ensure space_avail is unsigned.
332 21) patch to check for a valid [f]chmod_acl function pointer
333     before calling it.  Fixes seg fault in audit VFS module
334 22) When checking is_locked() new WRITE locks conflict with existing
335     READ locks even if the context is the same.
336 23) Merge off-by-one crash fixes from HEAD
337 24) Move off-by-one buggy malloc()/safe_strcpy() combination to 
338     strdup() instead.
339 25) Merge from HEAD. Use pstrcpy not safe_strcpy.
340 26) Fix to allow blocking lock notification to be done rapidly (no wait
341     for smb -> smb lock release). Adds new PENDING_LOCK type to lockdb
342     (does not interfere with existing locks).
343 27) Doxygen cleanups for code documentation
344 28) limit the unix domain sockets used by winbindd  by adding a
345     "last_access" field to winbindd connections, and will close
346     the oldest idle connection once the number of open connections goes
347     over WINBINDD_MAX_SIMULTANEOUS_CLIENTS (defined in local.h as 200
348     currently)
349 29) Fix a couple of string handling errors in smbd/dir.c that would
350     cause smbd to crash
351 30) Fix seg fault in smbpasswd when specifying the new password
352     as a command line argument
353 31) Correct 64-but file sizes issues with smbtar and smbclient
354 32) Add batch mode option to pdbedit
355 33) Add protection in nmbd against malformed reply packets
356 34) Fix bug with sendfile profiling support in smbstatus output
357 35) Correct bug in "hide unreadable" smb.conf parameter that
358     resulted in incorrect directory listings
359 36) Fix bug in group enumeration in winbindd
360 37) Correct build issues with libsmbclient on Solaris
361 38) Fix memory leak and bad pointer dereference in password
362     changing code in smbd
363 39) Fix for changing attributes on a file truncate
364 40) Ensure smbd process count never gets to -1 if limiting number
365     of processes
366 41) Ensure we return disk full by default on short writes
367 42) Don't delete jobs submitted after the lpq time
368 43) Fix reference count bug where smbds would not terminate
369     with no open resources
370 44) Performance fix when using quota support on HP-UX
371 45) Fixes for --with-ldapsam
372     * Default to port 389 when "ldap ssl != on"
373     * add support for rebinding to the master directory server
374       for password changes when "ldap server" points to a read-only
375       slave
376 46) Add -W and -X command line flags to smbpasswd for extracting and
377     setting the machine/domain SID in secrets.tdb.  See the
378     smbpasswd(8) man page for details.
379 47) Added (c) Luke Howard to winbind_nss_solaris.c for coded
380     obtained from PADL's nss_ldap library.
381 48) Fix bug in samr_dispinfo query in winbindd
382 49) Fix segfault in NTLMSSP password changing code for
383     guest connections
384 50) Correct pstring/fstring mismatches
385 51) Send level II oplock break requests synchronously to prevent
386     condition where one smbd would continually lock a share entry
387     in locking.tdb
388 52) Miscellaneous cleanups for tdb error conditions and appending
389     data in a record
390 53) Implement correct open file truncate semantics with DOS
391     attributes
392 54) Enforce wide links = no on files as well as directories
393 55) Include shared library checks for Stratus VOS
394 56) Include support for CUPS printer classes and logging the remote
395     client name
396 57) Include  "WinXP" (Windows XP) and "Win2K3" (Windows .NET) values
397     for %a
398 58) Increase the max PDU size to deal with some troublesome printer 
399     drivers and Windows NT 4.0 clients
400 59) increment the process counter immediately after the fork   
401     (not just when we receive the first smb packet)
402 60) Ensure rename sets errno correctly
403 61) Unify ACL code (back-port from 3.0)
404 62) Fix some further issues around off_t and large offsets
407 Changes since 2.2.7
408 --------------------
410 See the cvs log for SAMBA_2_2 for more details
412 1)  Fix for smbclient reporting negative file sizes on dir command
413     and negative statistics being reported when using put or get
414     on large files.
415 2)  Fix bug in determination of allocation size
416 3)  Fix 64bit size problems which prevented copying of files larger
417     than 2 GBytes.
418 4)  Fix for xcopy /s problem with old DOS clients not sending correct
419     attributes on subsequent SMBsearch calls.
420 5)  Fix bug in call to standard_sub_advanced giving a 0 length. This
421     fixes the string overflow in string_sub errors.
422 6)  Correctly handle querygroup rpcclient command
423 7)  fix broken incremental tar in smbtar command
426 The release notes for 2.2.7 follow :
428 IMPORTANT: Security bugfix for Samba
429 ------------------------------------
431 Summary
432 -------
434 A security hole has been discovered in versions 2.2.2 through 2.2.6 
435 of Samba that could potentially allow an attacker to gain root access
436 on the target machine.  The word "potentially" is used because there 
437 is no known exploit of this bug, and the Samba Team has not been able to
438 craft one ourselves. However, the seriousness of the problem warrants
439 this immediate 2.2.7 release.
441 In addition to addressing this security issue, Samba 2.2.7 also includes
442 thirteen unrelated improvements. These improvements result from our
443 process of continuous quality assurance and code review, and are part of
444 the Samba team's commitment to excellence.
446 Details
447 -------
449 There was a bug in the length checking for encrypted password change
450 requests from clients. A client could potentially send an encrypted
451 password, which, when decrypted with the old hashed password could be
452 used as a buffer overrun attack on the stack of smbd. The attach would
453 have to be crafted such that converting a DOS codepage string to little
454 endian UCS2 unicode would translate into an executable block of code.
456 All versions of Samba between 2.2.2 to 2.2.6 inclusive are vulnerable
457 to this problem. This version of Samba 2.2.7 contains a fix for this
458 problem.
460 Earlier versions of Samba are not vulnerable.
462 There is no known exploit or exploit code for this vulnerability,
463 it was discovered by a code audit by Debian Samba maintainers.
465 Credit
466 ------
468 Thanks to Steve Langasek <vorlon@debian.org> and Eloy Paris
469 <peloy@debian.org> for bringing this vulnerability to our notice.
471 Patch for Samba versions 2.2.2 to 2.2.6
472 ---------------------------------------
474 The following patch applies cleanly to the above Samba versions
475 and will fix the vulnerability for sites that do not wish to upgrade
476 to 2.2.7 at this time.
479 -------------------------------cut here---------------------------------
480 --- libsmb/smbencrypt.c.orig    Tue Nov 19 17:21:57 2002
481 +++ libsmb/smbencrypt.c Tue Nov 19 17:22:12 2002
482 @@ -63,7 +63,7 @@
483         if(len > 128)
484                 len = 128;
485         /* Password must be converted to NT unicode - null terminated. */
486 -       dos_struni2((char *)wpwd, (const char *)passwd, 256);
487 +       dos_struni2((char *)wpwd, (const char *)passwd, len);
488         /* Calculate length in bytes */
489         len = strlen_w((const smb_ucs2_t *)wpwd) * sizeof(int16);
490 -------------------------------cut here---------------------------------
494 Changes since 2.2.6
495 --------------------
497 See the cvs log for SAMBA_2_2 for more details
499 1)  ensure we send the notify message in the same way it is expected
500     to be received by srv_spoolss_receive_message().
501 2)  attribute matching on truncate only matters when opening truncate
502     with current SYSTEM|HIDDEN -> NONE. It's fine to truncate on open
503     with current NONE -> SYSTEM | HIDDEN.
504 3)  Fix bug in rpcclient's deldriver command
505 4)  Don't set global_machine_password_needs_changing if
506     lp_machine_password_timeout() is set to zero
507 5)  don't parse the BUFFER5 if the buffer length is zero
508 6)  fix core dump if pdbedit is run as non-root or smbpasswd file does
509     not exist
510 7)  Ensure can_delete() returns correct error code
511 8)  correctly return NT_STATUS_DELETE_PENDING from open code
512 9)  fix bug that assumed dos_unistr2 length was in ucs2 units, not 
513     bytes
514 10) check the long_archi name is not null when deleting a printer 
515     driver.  fixes core dump in smbd when using rpcclient's deldriver
516 11) fix fd leak with kernel change notify on Linux 2.4 kernels
517 12) must add one to the extra_data size to transfer the 0 string
518     terminator.  This was causing "wbinfo --sequence" to access past 
519     the end of malloced memory
520 13) fix for large systems allowing more than 65536 files open in
521     NTcreate&X
522 14) Fix bug in %U expansion
526 ----------------------------------------------------------------------
527 The release notes for 2.2.6 follow :
529 There have been several fixes and internal enhancements which include:
531  * Fixes for MS-RPC printing issues affecting Windows 2000 clients
532  * New support for smb.conf generation in SWAT
533  * Inclusion of several performance enhancements (See --with-sendfile
534    & and the modified smb.conf(5) parameters in these Release Notes)
535  * Fixes for several file locking bugs and returned status codes
538 New Parameters
539 --------------
541 Refer to the smb.conf(5) man page for complete descriptions of new 
542 parameters.
544   * profile acls (S)            workaround for issue with WinXP SP1
545                                 and roaming user profiles
547 Removed Parameters
548 ------------------
550   * max packet (G)
551   * packet size (G)
553 Modified Parameters
554 -------------------
556   * max xmit (G)                new default value
557   * large readwrite (G)         new default value
559 New ./configure Options
560 -----------------------
562   --with-sendfile               Enable experimental sendfile support
563   --with-winbind-ldap-hack      Enable winbindd_ldap_hack() functionality
564                                 for Windows 2000 native mode domains
567 Changes since 2.2.5
568 --------------------
570 See the cvs log for SAMBA_2_2 for more details
572 1)  Fixed several compiler warnings caused by the use of const parameters
573 2)  Fixed a hang in the main smbd process caused by an EINTR in the
574     wrong place
575 3)  Fixed string substitutions to accept a length for sanity checks
576 4)  Fixed 17-bit length field in nmb header
577 5)  Removed non-portable inline declaration for functions
578 6)  Performance fix for including files with an smb.conf variable in the
579     path name
580 7)  Fix for parsing LPRng lpq output
581 8)  Parsing fix for PRINTER_INFO_2 structure which was causing viewing
582     printer properties to fail
583 9)  Fix for printer change notification and Windows NT clients which caused
584     the client to go into an infinite loop of refreshing the local printers
585     folder
586 10) Allow trans2 and nttrans messages to be processed in oplock break state
587     which fixes a problem with oplock break requests and Win2k clients
588 11) Don't crash on setfileinfo on printer fsp
589 12) Memory fixes caught by Valgrind
590 13) Updates to stop spurious error message in tdb
591 14) Fix silly logic bug in 'make smbd processes' and 'status = no' check
592 15) Fix compilation of pam_smbpass and --with-ldap
593 16) Fix compilation of smbwrapper on Solaris hosts
594 17) fix logic error in a check for enabling the winbind_pam_auth_crap() code
595     & fix formatting typo in --with-winbind-auth-challenge
596 18) Correcting check for ldap_start_tls()
597 19) Fixed a problem with getgroups() where it could include our current
598     effective gid
599 20) fix incorrect semantics in the DeletePrinterDriver() spoolss rpc
600     to only attempt to delete the architecture specified by the client
601 21) Don't allow TEMP attribute on directory open
602 22) Restore VxFS quotas to the 2.2 branch
603 23) Added basic "Wizard" functionality to SWAT
604 24) Fix initial "allocation size" in NTcreate&X call
605 25) Fix for open fid, "nametoolong"
606 26) Exit server on receipt of a non-SMB packet.  Ensure we have
607     at least smb_size bytes before processing a packet
608 27) Replace inet_aton with inet_addr() to correct compile problems on Solaris
609 28) Include the "account" objectclass when adding a new account to --with-ldapsam
610     in order to comply with the data model implemented by OpenLDAP 2.1.x
611 29) Various fixes for POSIX compliance
612 30) Correct alignment & offset bug in EnumPrinterDataEx()
613 31) Fix access checks when modifying forms using a print server handle
614     (not just a printer handle)
615 32) Account for case data_len == 0 in EnumPrinterDataEx()
616 33) Fix logic error in blocking lock code
617 34) Fixed various incorrect return codes to clients
618 35) Add RESOLVE_DFSPATH to mkdir operations
619 36) Fix longstanding bug in Win2k clients by clearing the shortname
620     buffer before returning ASCII short name
621 37) added -t option to smbpasswd for explicitly changing a trust
622     account password when operating in security = domain
623 38) installed -x option to testparm to eXclude printing all parameter
624     values that are at default settings.
625 39) Fix shares/printers view in SWAT so that only Basic options are exposed
626     upon initial entry.
627 40) Added 1125 & KOI8-U to codepage list in Makefile.in
628 41) Include separate configure checks for *openbsd* & *freebsd* when
629     determining flags used to compile shared libraries.
630 42) Merge in free list unlock on error fix
631 43) Correctly fail opens with mismatching SYSTEM or HIDDEN attributes
632     if we are mapping system or hidden
633 44) Fix bug with stat mode open being done on read-only open with truncate
634 45) Fix crash bug discovered where cli struct was being deallocated in a
635     called function
636 46) Ensure we open UNIX fifo's non-blocking
637 47) Fix DeletePrinterDriver() (hopefully for the last time...yeah right....)
638 48) only lowercase global_myname in the %L substitution, not the whole string
639 49) Merged Steve French's fix for OS/2 EA return error being removed
640 50) Patch from Steve French to fix difference in responses to smbclient
641     //server/share ls / on Samba and Windows 2000
642 51) Print error and exit if smb.conf doesn't have security=domain and
643     encrypt passwords=yes when joining domain
644 52) Added final Steve French patch for "required" attributes with old dir
645     listings
646 53) Initialize user_rid value in WINBIND_USERINFO structure returned by
647     the rpc version of query_user()
648 54) Ensure we've failed a lock with a lock denied message before automatically
649     pushing it onto the blocking queue
650 55) Add experimental --with-sendfile code
651 56) alignment fix in printing code merged from HEAD
652 57) Merge fix for other sids in token from HEAD
653 58) Merge winbindd with current (more advanced) state of play in APPLIANCE_HEAD
654 59) fix smbclient / Win98 off by one bug
655 60) Never, *ever* hold a mutex lock in the message database where there may be
656     traversals being attempted
657 61) Add LDAP hack for retrieving the SAM sequence number when a member of a
658     Windows 2000 native mode domain
659 62) Fix race condition when changing a machine account password as we were
660     no longer locking the secrets entry
661 63) Allow '@' as a valid character in domain names
662 64) remove jobs from the spool directory when using cups
663 65) removed -lresolv for --enable-ldapsam
664 66) Memory leak fix and correct use of negative caching in winbindd
665 67) Updated spoolss parsing code with known good state of APPLIANCE_HEAD
666 68) Delete printer security check was reversed
667 69) Windows allows delete printer on a handle opened by an admin user, then
668     used on a pipe handle created by an anonymous user...We do to now...
669 70) Make explicit the difference between a tdb key with no data attached, and
670     a non existent entry
671 71) Ensure we register the 1c name on the unicast subnet.
672 72) Fix inheritance problem when recursively setting ACLs on directories
673 73) prevent ACL set on read-only share
674 74) Ensure we never have more than MAX_PRINT_JOBS in a queue
675 75) Added timeout to tdb_lock_bystring()
676 76) Ensure we set FIRST+LAST flags on a bind request
677 77) Add version strings to the usage message for smbcacls and smbpasswd
678 78) Fix bug in the write cache code
679 79) make the default printed values for boolean the same for all parameters
680 80) Default all LDAP connections to v3 with compiling with --with-ldapsam
681 81) Fix memory leak in smbspool
682 82) Fix bug in mangling code that resulted in Win9x clients not being
683     able to execute batch files in deep, non 8.3  directory paths
684 83) Fix infinite looping bug in winbindd_getgrent()
685 84) Fix crash bug on 64-bit systems (merge from HEAD)
686 85) Fix extended character bug when setting LanMan/NT password
687 86) Negotiate same SMB read size as a Windows 2000 file server
688     to fix performance bug with NT4 clients
692 -----------------------------------------------------------------------------
693 The release notes for 2.2.5 follow :
695 There have been several fixes and internal enhancements which include:
697 * Several compile fixes for Solaris and HP-UX
698 * More printing fixes for Windows NT/2k/XP clients
699 * New options for the VFS recycle bin library
700 * New internal signal handling semantics relating to directory change
701   notification and oplocks
703 New/Changed parameters in 2.2.5
704 --------------------------------
706 For more information on these parameters, see the man pages for
707 smb.conf(5).
709 Added/changed parameters
710 ------------------------
712 * block size = <INTEGER>
713 * force unknown acl user = <boolean>
714 * mangling method = [hash|hash2]
717 Deprecated Parameters
718 ---------------------
720 The following parameters have been marked as deprecated and will be removed
721 in Samba 3.0
723 * strip dot
724 * status
727 Removed Parameters
728 ------------------
730   none
733 Changes in 2.2.5
734 ----------------
736 See the cvs log for SAMBA_2_2 for more details
738 1)  Removal of several compiler warnings, incorrect Makefile dependencies,
739     and wrong autoconf tests on various platforms--Solaris & HP-UX 10.20
740     being the predominantly reported platforms
741 2)  Fixed winbindd crash bug on the IBM s390 running Linux
742 3)  Inclusion of enhanced Linux quota support
743 4)  Correctly link against Sun LDAP libraries on Solaris 8 (even through
744     there is no apparent SSL support there)
745 5)  POSIX conformance patches
746 6)  Include new configure --enable-cups option (can also be disabled even
747     if CUPS libraries are installed on the system)
748 7)  Set reasonable default for the "passwd program" parameter using an
749     autoconf test
750 8)  Added --with-winbind-auth for enabling winbindd_pam_auth_crap() code
751 9)  fixed bug to prevent root account from being deleted by the
752     "delete user script"
753 10) Inclusion of autoconf script for building VFS modules
754 11) Add new run time options to the VFS recycle bin library (see
755     examples/VFS/recycle/README for details)
756 12) Include findsmb perl script as part of the "make install" process
757 13) Return correct error code for EnumPrinters(PRINTER_ENUM_REMOTE, InfoLevel1)
758     to fix a bug where printers appear at the workgroup level in the Windows
759     NT/2k APW browse list
760 14) Added support to nmblookup to return NMB flags (See nmblookup(8) for
761     details)
762 15) Fix length bug that caused password changes from Windows NT/2k clients to
763     occasionally fail
764 16) Correct false password expiration when using --with-ldapsam caused by
765     missing attributes in the directory
766 17) added -S option to smbpasswd for storing the SID of a domain controller
767     as the local machine SID in secrets.tdb.  See the smbpasswd(8) man page
768     for details.
769 18) Various fixes for UNIX CIFS extensions commands
770 19) Fixed CIDR notation in "hosts allow/deny"
771 20) Change semantics of an idle connection to mean "no open files and no
772     open handles".  We cannot idle a connection if there are open named
773     pipe handles.  This fixes scalability problem on Samba print servers
774     and NT/2k clients introduced in 2.2.4
775 21) Fix germam umlaut problem when returning ACL entries
776 22) Return NT_STATUS_OBJECT_NAME_NOT_FOUND for ENOENT.  This fixes the bug
777     of running the Microsoft Access executable (msaccess.exe) and database
778     files from a Samba share documented in the 2.2.4 release
779 23) Corrected signal handling relating to directory change notification and
780     kernel oplocks
781 24) Fix bug in unix_to_nt_time() that appeared on files dated close to Daylight
782     Savings Time
783 25) Corrected alignment bug in spoolss parsing code which caused Win2k/XP
784     clients not to be able to view printer properties from a Samba host
785 26) Fixed spoolss parsing bug causing printing from ACT! 2000 running on
786     Windows 2k/XP clients to fail
787 27) Fixed incorrect error check in mod_share_entry()
788 28) Allow %S variable in MS-DFS root paths
789 29) Correct a bug regarding the use of 'wbinfo -A'
790 30) Fixed libnss_wins.so to correctly work on RedHat 7.3 systems
791 31) Store the key for a name-to-sid cache entry in upper case rather than
792     whatever case the request was made in.  This gets rid of duplicate
793     cache entries.
794 32) Fix bug causing the pid stored in winbindd's pid file to be the wrong id
795 33) Enhanced error reporting messages of wbinfo
796 34) Parameterize block size on disk size return
797 35) Added new parameter to allow incoming ACLs to have owner and group forced
798     to the currently logged in user. This fixes the XCOPY /O problem
799 36) Fixed bug in local_change_password() caused by reusing a struct
800     passwd* pointer
801 37) Change default value for "ldap port" to 389 if "ldap ssl = no"
802 38) Updated HOWTO's, manpages, and general documentation....
803 39) Allow root as well as domain admins to open an LDAP connection
804 40) Fixed veto files bug with ".*"
805 41) Fixed uninitialized variable bug in smbpasswd that was causing a random
806     IP address to be used in the connection when joining a domain
807 42) Fix for joining a domain with a netbios name of 15 characters and
808     pre-creating the account on the DC
809 43) Added links to new documentation on SWAT welcome page
813 -----------------------------------------------------------------------------
814 The release notes for 2.2.4 follow :
816 There have been several fixes and internal enhancements which include:
818  * More/better SPOOLSS printing functionality for Windows
819    NT/2k/XP clients.
820  * Several fixes relating to serving PC database files such
821    as (Access and FoxPro) from a Samba file share.
822  * Several improves in Samba's VFS layer which can be seen
823    in the inclusion of a "Recycle Bin" vfs module.  See
824    examples/VFS/README for more details on this.
825  * Addition of a tool (tdbbackup) for backup/restore of Samba's
826    tdb's
827  * Continued improvements to winbind for greater scalability
828    and stability
829  * Several fixes related to Samba's MS-DFS support
830  * Rpcclient's various printer commands now work (again)
833 New/Changed parameters in 2.2.4
834 --------------------------------
836 For more information on these parameters, see the man pages for
837 smb.conf(5).
839 Added/changed parameters
840 ------------------------
842 * csc policy
843 * inherit acls
844 * nt status support
845 * lock spin count
846 * lock spin time
847 * pid directory
848 * winbind use default domain
851 Deprecated parameters
852 ---------------------
854 The following parameters have been marked as deprecated
855 and will be removed in Samba 3.0
857 * postscript
858 * printer driver
859 * printer driver file
860 * printer driver location
863 Removed Parameters
864 ------------------
866   none
869 Changes in 2.2.4
870 ----------------
872 See the cvs log for SAMBA_2_2 for more details
874 1)  added -c option to smbpasswd
875 2)  reworked smbpasswd internal command line option parsing
876 3)  small various bug fixes to experimental pdb_tdb.c
877 4)  Enforce spoolss RPCs based on the access granted at PrinterOpen()
878 5)  Added missing access checks to [add/delete/set]form
879 6)  Compile fixes for pam_smbpass
880 7)  fix smbd crash when netbios session request fails from
881     spoolss_connect_to_client().
882 8)  fixed logic bug that prevent SetPrinter() from storing devmode
883 9)  Removed extra get_printer_snum() calls from set_printer_hnd_name()
884 10) fix joining domain on big endian machine when using -U to smbpasswd
885 11) allow command line arg to override smb.conf log level
886 12) continue to retry to register 1b name with wins server if there is an old IP there
887 13) fix smbclient print crash bug
888 14) 9x pnp fix when the config file and driver file are different
889 15) force testparm to print the correct value for log level
890 16) fix swat to show full log level info
891 17) fix server GetPrinterData() fields to be more sensible
892 18) fix logic error in SetPrinterDataEx()
893 19) Only set smb_read_error if not already set
894 20) Fix string returns that require unicode
895 21) Merge of printing performance fixes from appliance
896 22) lpq parsing fixes
897 23) Back port tridge's xcopy /o fix from HEAD
898 24) Fix the printer change notify code (unfinished)
899 25) Patch for Domain users not showing up
900 26) Fixed SetPrinterData(magic key) to support zero length DEVMODE
901 27) Ensure that all methods of looking up and connecting to DC's work
902     using identical logic.
903 28) Merge in the mutex code to stop multiple domain logon failure
904 29) Ignore 0/0 lock
905 30) Fix winbindd to respect command line debuglevel as nmbd/smbd
906 31) Update with tdbbackup from HEAD
907 32) Fix for typo on solaris nss
908 33) Merge in the locking changes from HEAD
909 34) Added POSIX ACL layer into the vfs
910 35) Fix the returning of domain enum
911 36) Fix the generation of the MACHINE.SID file into the secrets.tdb.
912 37) Enable test for -rdynamic when building binaries
913 38) Remove the "stat open" code - make it inline
914 39) Fix the mp3 rename bug
915 40) Fix for Explorer DFS problems on older Windows 9X machines
916 41) implement OpenPrinter() opnum == 0x01
917 42) Matched W2K *insane* open semantics....
918 43) small fix that will prevent the "failed to marshall
919     R_NET_SAMLOGON" message in the logs
920 42) don't do checking of local passdb in smbpasswd if using -r option
921 43) fix "smbpasswd -j DOMAIN -r * -U Admin%XXXX" so that it doesn't
922     try to connect to a server named '*'
923 44) merge rpcclient code from HEAD
924 45) Ensure MACHINE.SID update done before child spawns
925 46) Fix the bad path errors for mkdir so mkdir \a\b\c\d works
926 47) Removed --with-vfs - always built if available
927 48) Fixed psec for 2.2
928 49) Fixed the handle leak in the connection management code
929 50) fix disable spoolss after the switch to nt status codes
930 51) Added Shirish's client side caching policy change
931 52) Honor the specversion when parsing the the DEVICEMODE
932 53) fix parsing bug when DEVICEMODE's private data does not end
933     on a 4 byte boundary
934 54) do not idle an smbd when there is an open pipe
935 55) when a new driver is added to a Samba server, cycle through
936     all printers and bump the change_id for each one bound to the driver
937 56) allow smbclient to work with a FIFO as well (needed for KDE
938     ioslave)
939 57) various updates to pdb_nisplus.c
940 58) many small documentation updates
941 59) removed many compiler warnings
944 -----------------------------------------------------------------------------
945 The release notes for 2.2.3a follow :
947 This is a minor bugfix release for the 2.2.3 release. The 2.2.3
948 release had a problem that was visible to Windows 2000 Explorer
949 users in that copying files into a share that already existed
950 failed with "Access Denied" rather than asking the user if an
951 overwrite was required. This was due to an incorrect error mapping
952 between the UNIX EXIST error code and the NT status error.
954 As Windows Explorer is a highly visible end user application a quick
955 bugfix release was required, hence 2.2.3a.
957 Compilation on HP-UX versions earlier than HP-UX 11 has also been
958 corrected.
960 The cvs.log file is no longer included with this release, as it adds
961 13Mb to the size of the release, and is easily available on the Web.
963 -----------------------------------------------------------------------------
964 The release notes for 2.2.3 follow :
966 There are several important scaling bugs that have been fixed in this release
967 for large server systems so an upgrade is recommended.
969 LDAP update
970 -----------
972 Much work has been done on the LDAP backend code. The configure
973 option --with-ldapsam is now considered to be stable. The schema
974 used has changed, see the file examples/LDAP/samba.schema for the
975 new schema.
977 New documentation explaining how to set up a Samba only PDC/BDC
978 setup has been added in the files Samba-LDAP-HOWTO and Samba-BDC-HOWTO
979 in the documentation tree.
981 winbindd daemon extended
982 ------------------------
984 Samba 2.2.2 was the first release to include the winbind daemon.
985 This code allows UNIX systems that implement the name service
986 switch (nss) to be entered into a Windows NT/2000 domain and
987 use the Domain controller for all user and group enumeration.
989 Samba 2.2.3 fixes the known memory leaks in winbindd and has
990 been extended to work with SGI IRIX and HP-UX (11.x) in addition
991 to the earlier targets of Linux and Solaris.
993 For more information on using winbind, see the man pages for
994 winbindd and wbinfo.
996 Note that winbindd is not installed by default.
998 New/Changed parameters in 2.2.3
999 --------------------------------
1001 For more information on these parameters, see the man pages for
1002 smb.conf.
1004 Added/changed parameters.
1005 -------------------------
1007 unix extensions
1009 Enables the experimental UNIX CIFS extensions in smbd. See the manpage
1010 for more details.
1012 default devmode
1014 Some printer drivers will crash the Windows NT/2000 spooler service
1015 if they are given a default devmode, some require it. This parameter
1016 allows the administrator a choice of whether smbd returns such a
1017 default devmode for a driver.
1019 share modes
1021 This parameter has been restored to allow people who wish smbd to ignore
1022 client share modes. This is *very dangerous* and should not be set without
1023 full knowledge of what this is designed for.
1025 Changes in 2.2.3
1026 -----------------
1028 1). Fixed shared library compile for Solaris with native compiler.
1029 2). UNIX CIFS extensions code added (donated by HP).
1030 3). Changed to using NT status codes on the wire if the client can support
1031 this.
1032 4). altname command to show 8.3 name added to smbclient.
1033 5). const-safe endian macros now used.
1034 6). client code now uses UNICODE on the wire.
1035 7). Correctly return fault PDU's on bad handle.
1036 8). Improved NT error code mapping table.
1037 9). Many new point and print RPC calls added.
1038 10). Win9x clients can now see full user list.
1039 11). field added to identify simultaneous open files (no longer
1040 use dev/inode/time as unique value).
1041 12). HP-UX ACL code added (donated by HP).
1042 13). vfs interfaces updated (again !).
1043 14). MSDOS Code Page 866 -> 1251 mapping added.
1044 15). winbindd now processes quit/hup signals correctly.
1045 16). No tdb traversal done on startup/shutdown - ensures scalability.
1046 17). Fix bug with paths for homes share.
1047 18). Fixed copyfile for OS/2.
1048 19). Fix group membership when groups are on more than one line.
1049 20). Fixed core dumps in posix ACL mapping code.
1050 21). Tidyup of UNICODE functions (put/get).
1051 22). Move rpcclient to the new libsmb code.
1052 23). Add missing Windows 2000 passthough trans2 calls.
1053 24). Return check all tdb calls.
1054 25). Make local name lookup work even if wins server is down.
1055 26). pam session code added to winbind.
1056 27). Added winbindd cache to all lookups.
1057 28). Fix allocate bugs that caused file sizes to be incorrect.
1058 29). Fixed write cache code - now safe to use.
1059 30). Fixed winbindd memory leaks.
1060 31). winbindd will now do name lookups (to allow non Open Source
1061 systems to do the nsswitch WINS lookup). Fixed by SGI.
1062 32). passdb memory leaks fixed.
1063 33). LDAP code updates and now properly maintained.
1064 34). Finally figured out how changeid is meant to work.
1065 35). Downlevel printing now looks as NT does in print monitor window.
1066 36). Many fixups in spoolss printing RPC parsing.
1067 37). Speed up password enumeration as a PDC.
1068 38). Fix printer changed notify messages (work from HP).
1069 39). Fix modify timestamp on close code.
1070 40). Fix long standing mangled names bug.
1071 41). Fix delete on close semantics.
1072 42). Stop opening all files with O_NONBLOCK !
1073 43). Use O_NOFOLLOW for systems that have it and don't want symlinks.
1074 44). Ensure NT supplementary groups get added to user token.
1075 45). Try and mitigate effects of DNS timeout (do less lookups).
1076 46). Added current user connection context stack.
1077 47). Fixes to utmp code.
1078 48). smbw code tidyups.
1079 49). Added tdb open log code. Several tdb fixes.
1081 -----------------------------------------------------------------------------
1082 The release notes for 2.2.2 follow :
1084 New daemon included - winbindd
1085 ------------------------------
1087 Samba 2.2.2 is the first release to include the winbind daemon.
1088 This code allows UNIX systems that implement the name service
1089 switch (nss) to be entered into a Windows NT/2000 domain and
1090 use the Domain controller for all user and group enumeration.
1092 This allows a Samba server added to a Windows domain to serve
1093 file and print services with *NO* local users needed in /etc/passwd
1094 and /etc/group - all users and groups are read directly from the
1095 Windows domain controller. In addition with pam_winbind which allows
1096 a PAM enabled UNIX system to use a Windows domain for authentication
1097 service this allows single sign on and account control across
1098 UNIX and Windows systems.
1100 The current version of winbindd shipped in 2.2.2 does have some
1101 memory leaks, which will be addressed for the next Samba release,
1102 so it is advisable to monitor the winbind process. This code is
1103 being used in production by several vendors, so the leaks are
1104 manageable. In addition, this version of winbind does not work
1105 correctly against a Samba PDC, due to some missing calls on the
1106 PDC side. These problems are being addressed for the next Samba
1107 release, but it was thought better to release the code now rather
1108 than delay the main Samba code to match the winbind release schedule.
1110 For more information on using winbind, see the man pages for
1111 winbindd and wbinfo.
1113 Note that winbindd is not installed by default.
1115 New/Changed parameters in 2.2.2
1116 -------------------------------
1118 For more information on these parameters, see the man pages for
1119 smb.conf.
1121 Added/changed parameters.
1122 -------------------------
1124 strict allocate
1126 Causes Samba not to create UNIX 'sparse' files, but to follow the
1127 Windows behavior of always allocating on-disk space.
1129 use mmap
1131 Set to 'on' by default, only set to 'off' on HP-UX 11.x or below or other
1132 UNIX systems that don't have coherent mmap/read-write internal caches.
1133 You should not need to set this parameter.
1135 nt acl support
1137 This parameter has been changed to a per-share option, and is very
1138 useful in enabling Windows 2000 SP2 to load/save profiles from a 
1139 Samba share.
1141 New printing parameters.
1142 ------------------------
1144 disable spoolss
1146 Setting this parameter causes Samba to go back to the old 2.0.x
1147 LANMAN printing behavior, for people who wish to disable the
1148 new SPOOLSS pipe.
1150 use client driver
1152 Causes Windows NT/2000 clients to need have a local printer driver
1153 installed and to treat the printer as local.
1155 New LDAP parameters.
1156 --------------------
1158 Samba 2.2.2 contains new code to maintain a Samba SAM database
1159 on a remote LDAP server. These parameters have been added as
1160 part of this code. These parameters are only available when Samba
1161 has been compiled with the --with-ldapsam option.
1163 ldap admin dn
1164 ldap ssl
1166 New SSL parameters.
1167 -------------------
1169 The SSL support in Samba has been fixed. These new parameters
1170 are part of the changes added. These parameters are only available
1171 when Samba has been compiled with the --with-ssl option. 
1172 Please see the smb.conf man page for details.
1174 ssl egd socket
1175 ssl entropy file
1176 ssl entropy bytes
1178 New winbindd parameters.
1179 ------------------------
1181 These parameters are used by winbindd. See the man page for
1182 winbindd for details.
1184 winbind separator
1185 winbind uid
1186 winbind gid
1187 winbind cache time
1188 winbind enum users
1189 winbind enum groups
1190 template homedir
1191 template shell
1193 Removed parameters.
1194 -------------------
1196 share modes
1197 ldap root
1198 ldap root passwd
1200 New Documentation.
1201 ------------------
1203 Some new README's have been added in the docs/ directory. These cover
1204 using roving profiles with Windows 2000 SP2 (docs/README.Win2kSP2),
1205 and how to use Samba to help prevent Windows virus spread
1206 (docs/README.Win32-Viruses).
1208 Quota problems on a Linux 2.4 kernel.
1209 -------------------------------------
1211 Currently the quota interfaces have diverged between the Linus
1212 2.4.x kernels and the Alan Cox 2.4.x kernels (the Alan Cox variants
1213 are shipped with RedHat). Running quota-enabled Samba compiled on
1214 an Alan Cox kernel works correctly on an Alan Cox kernel (the one
1215 shipped by default with RedHat 7.x) but fails on a Linus kernel.
1217 This is a mess, and hopefully Alan and Linus will sort it out soon.
1218 In the meantime we need to ship.....
1220 Changes in 2.2.2
1221 -----------------
1223 1). mmap tdb code disabled on HP-UX. This should prevent the reports of
1224 tdb corruption on HUPX.
1225 2). Large file support set to off in Solaris 5.5 and below.
1226 3). Better CUPS detection.
1227 4). New SAM (password database) backends - smbpasswd (traditional),
1228 LDAP, NIS+ and Samba TDB.
1229 5). Quota fixups on Linux.
1230 6). libsmbclient stand-alone code added. Can be built as a shared library
1231 under Linux.
1232 7). Tru64 ACL support added.
1233 8). winbindd option added.
1234 9). Realloc fail tidyup fixes all over the code.
1235 10). Large improvement in hash table code efficiency - would be found with
1236 large stat caches.
1237 11). Error code consistency improved (still needs more work).
1238 12). Profile shared memory support added to nmbd.
1239 13). New Windows 2000/NT passthrough info levels added.
1240 14). readraw/writeraw code rewritten - many bugs fixed.
1241 15). UNIX password sync (non pam) code fixed, use correct wildcard matcher.
1242 16). Reverse DNS lookup avoided on socket open.
1243 17). Bug preventing nmbd re-registering names on WINS server timeout fixed.
1244 18). Zero length byte range lock code added. Much closer to Windows semantics.
1245 19). Alignment fault fixes for Linux/Alpha.
1246 20). Error checking on tdb returns vastly improved.
1247 21). Handling of delete on close fixed. No longer possible to leave 'dead'
1248 file entries.
1249 22). Handling of oplock break failure cleanups improved. Should not be
1250 able to leave 'dead' entries.
1251 23). Fix handling of errors trying to set 64 bit locks on 32 bit NFS mounts.
1252 24). Misc. MS-DFS code fixes.
1253 25). Ignore logon packets if not a PDC (needed for PDC/BDC failover).
1254 26). winbind pam module added.
1255 27). Order N^^2 enumeration of printers problem fixed.
1256 28). Password backend database code re-ordered to allow different password
1257 backends (at compile time currently).
1258 29). Improved print driver version detection for Windows 2000.
1259 30). Driver DEVMODE initialization fixes.
1260 31). Improved SYSV print parse code.
1261 32). Fixed enumeration of large numbers of users/groups from Windows clients.
1262 Code still too slow.
1263 33). Fix for buggy NetApp RPC pipe clients.
1264 34). Fix for NT sending multiple SetPrinterDataEx calls.
1265 35). Fix for logic bug where smbd could delay oplock break request messages
1266 from other smbd daemons whilst client kept us busy.
1267 36). Fix deadlock problem with connections tdb on enumeration.
1268 37). Fixes for setting/getting NT ACLs - improved POSIX mapping both ways.
1269 38). Removed unused readbmpx/writebmpx code.
1270 39). Attempt to fix Linux 2.4.x quota mess.
1271 40). Improved ctemp code for Windows 2000 compatibility.
1272 41). Finally understood difference between set EOF and set allocation requests.
1273 Added strict allocate parameter to help.
1274 42). Correctly return name types on name to SID lookups.
1275 43). tdb spinlock code update.
1276 44). Use pread/pwrite on systems that have it to fix race condition in tdb code.
1278 -----------------------------------------------------------------------------
1279 The release notes for 2.2.1a follow :
1281 This is a minor bugfix release for 2.2.1, *NOT* security related.
1283 1). 2.2.1 had a bug where using smbpasswd -m to add a Windows NT or
1284 Windows2000 machine into a Samba hosted PDC would fail due to our
1285 stricter user name checking. We were disallowing user names
1286 containing '$', which is needed when using smbpasswd to add a
1287 machine into a domain. Automatically adding machines (using the
1288 native Windows tools) into a Samba domain worked correctly.
1290 2.2.1a fixes this single problem.
1292 -----------------------------------------------------------------------------
1293 The release notes for 2.2.1 follow :
1295 New/Changed parameters in 2.2.1
1296 -------------------------------
1298 Added parameters.
1299 -----------------
1301 obey pam restrictions
1303 When Samba is configured to use PAM, turns on or off Samba checking
1304 the PAM account restrictions. Defaults to off.
1306 pam password change
1308 When Samba is configured to use PAM, turns on or off Samba passing
1309 the password changes to PAM. Defaults to off.
1311 large readwrite
1313 New option to allow new Windows 2000 large file (64k) streaming
1314 read/write options. Needs a 64 bit underlying operating system
1315 (for Linux use kernel 2.4 with glibc 2.2 or above). Can improve performance
1316 by 10% with Windows 2000 clients. Defaults to off. Not as tested
1317 as some other Samba code paths.
1319 hide unreadable
1321 Prevents clients from seeing the existence of files that cannot
1322 be read. Off by default.
1324 enhanced browsing
1326 Turn on/off the enhanced Samba browsing functionality (*1B names).
1327 Default is "on". Can prevent eternal machines in workgroups when
1328 WINS servers are not synchronized.
1330 Removed parameters.
1331 -------------------
1333 domain groups
1334 domain admin users
1335 domain guest users
1337 Changes in 2.2.1
1338 -----------------
1340 1). "find" command removed for smbclient. Internal code now used.
1341 2). smbspool updates to retry connections from Michael Sweet.
1342 3). Fix for mapping 8859-15 characters to UNICODE.
1343 4). Changed "security=server" to try with invalid username to prevent
1344     account lockouts.
1345 5). Fixes to allow Windows 2000 SP2 clients to join a Samba PDC.
1346 6). Support for Windows 9x Nexus tools to allow security changes from Win9x.
1347 7). Two locking fixes added. Samba 2.2.1 now passes the Clarion network
1348     lock tester tool for distributed databases.
1349 8). Preliminary support added for Windows 2000 large file read/write SMBs.
1350 9). Changed random number generator in Samba to prevent guess attacks.
1351 10). Fixes for tdb corruption in connections.tdb and file locking brlock.tdb.
1352      smbd's clean the tdb files on startup and shutdown.
1353 11). Fixes for default ACLs on Solaris.
1354 12). Tidyup of password entry caching code.
1355 13). Correct shutdowns added for send fails. Helps tdb cleanup code.
1356 14). Prevent invalid '/' characters in workgroup names.
1357 15). Removed more static arrays in SAMR code.
1358 16). Client code is now UNICODE on the wire.
1359 17). Fix 2 second timestamp resolution everywhere if dos timestamp set to yes.
1360 18). All tdb opens now going through logging function.
1361 19). Add pam password changing and pam restrictions code.
1362 20). Printer driver management improvements (delete driver).
1363 21). Fix difference between NULL security descriptors and empty
1364      security descriptors.
1365 22). Fix SID returns for server roles.
1366 23). Allow Windows 2000 mmc to view and set Samba share security descriptors.
1367 24). Allow smbcontrol to forcibly disconnect a share.
1368 25). tdb fixes for HP-UX, OpenBSD and other OS's that don't have a coherent
1369      mmap/file read/write cache.
1370 26). Fix race condition in returning create disposition for file create/open.
1371 27). Fix NT rewriting of security descriptors to their canonical form for
1372      ACLs.
1373 28). Fix for Samba running on top of Linux VFAT ftruncate bug.
1374 29). Swat fixes for being run with xinetd that doesn't set the umask.
1375 30). Fix for slow writes with Win9x Explorer clients. Emulates Microsoft
1376      TCP stack early ack specification error.
1377 31). Changed lock & persistent tdb directory to /var/cache/samba by default on
1378      RedHat and Mandrake as they clear the /var/lock/samba directory on reboot.
1380 -----------------------------------------------------------------------------
1381 The release notes for 2.2.0a follow :
1383 SECURITY FIX
1384 ============
1386 This is a security bugfix release for Samba 2.2.0. This release provides the
1387 following two changes *ONLY* from the 2.2.0 release.
1389 1). Fix for the security hole discovered by Michal Zalewski (lcamtuf@bos.bindview.com)
1390     and described in the security advisory below.
1391 2). Fix for the hosts allow/hosts deny parameters not being honoured.
1393 No other changes are being made for this release to ensure a security fix only.
1394 For new functionality (including these security fixes) download Samba 2.2.1
1395 when it is available.
1397 The security advisory follows :
1400                 IMPORTANT: Security bugfix for Samba
1401                 ------------------------------------
1403 June 23rd 2001
1406 Summary
1407 -------
1409 A serious security hole has been discovered in all versions of Samba
1410 that allows an attacker to gain root access on the target machine for
1411 certain types of common Samba configuration.
1413 The immediate fix is to edit your smb.conf configuration file and
1414 remove all occurances of the macro "%m". Replacing occurances of %m
1415 with %I is probably the best solution for most sites.
1417 Details
1418 -------
1420 A remote attacker can use a netbios name containing unix path
1421 characters which will then be substituted into the %m macro wherever
1422 it occurs in smb.conf. This can be used to cause Samba to create a log
1423 file on top of an important system file, which in turn can be used to
1424 compromise security on the server.
1426 The most commonly used configuration option that can be vulnerable to
1427 this attack is the "log file" option. The default value for this
1428 option is VARDIR/log.smbd. If the default is used then Samba is not
1429 vulnerable to this attack.
1431 The security hole occurs when a log file option like the following is
1432 used:
1434   log file = /var/log/samba/%m.log
1436 In that case the attacker can use a locally created symbolic link to
1437 overwrite any file on the system. This requires local access to the
1438 server.
1440 If your Samba configuration has something like the following:
1442   log file = /var/log/samba/%m
1444 Then the attacker could successfully compromise your server remotely
1445 as no symbolic link is required. This type of configuration is very
1446 rare.
1448 The most commonly used log file configuration containing %m is the
1449 distributed in the sample configuration file that comes with Samba:
1451   log file = /var/log/samba/log.%m
1453 in that case your machine is not vulnerable to this attack unless you
1454 happen to have a subdirectory in /var/log/samba/ which starts with the
1455 prefix "log."
1457 Credit
1458 ------
1460 Thanks to Michal Zalewski (lcamtuf@bos.bindview.com) for finding this
1461 vulnerability.
1464 New Release
1465 -----------
1467 While we recommend that vulnerable sites immediately change their
1468 smb.conf configuration file to prevent the attack we will also be
1469 making new releases of Samba within the next 24 hours to properly fix
1470 the problem. Please see http://www.samba.org/ for the new releases.
1472 Please report any attacks to the appropriate authority.
1474         The Samba Team
1475         security@samba.org
1477 ---------------------------------------------------------------------------
1479 The release notes for 2.2.0 follow :
1481 This is the official Samba 2.2.0 release. This version of Samba provides
1482 the following new features and enhancements.
1484 Integration between Windows oplocks and NFS file opens (IRIX and Linux
1485 2.4 kernel only). This gives complete data and locking integrity between
1486 Windows and UNIX file access to the same data files.
1488 Ability to act as an authentication source for Windows 2000 clients as
1489 well as for NT4.x clients.
1491 Integration with the winbind daemon that provides a single
1492 sign on facility for UNIX servers in Windows 2000/NT4 networks
1493 driven by a Windows 2000/NT4 PDC. winbind is not included in
1494 this release, it currently must be obtained separately. We are
1495 committed to including winbind in a future Samba 2.2.x release.
1497 Support for native Windows 2000/NT4 printing RPCs. This includes
1498 support for automatic printer driver download.
1500 Support for server supported Access Control Lists (ACLs).
1501 This release contains support for the following filesystems: 
1503     Solaris 2.6+ 
1504     SGI Irix 
1505     Linux Kernel with ACL patch from http://acl.bestbits.at
1506         Linux Kernel with XFS ACL support.
1507         Caldera/SCO UnixWare
1508         IBM AIX
1509         FreeBSD (with external patch)
1511 Other platforms will be supported as resources are
1512 available to test and implement the necessary modules. If
1513 you are interested in writing the support for a particular
1514 ACL filesystem, please join the samba-technical mailing
1515 list and coordinate your efforts. 
1517 On PAM (Pluggable Authentication Module) based systems - better debugging
1518 messages and encrypted password users now have access control verified via
1519 PAM - Note: Authentication still uses the encrypted password database.
1521 Rewritten internal locking semantics for more robustness.
1522 This release supports full 64 bit locking semantics on all
1523 (even 32 bit) platforms. SMB locks are mapped onto POSIX
1524 locks (32 bit or 64 bit) as the underlying system allows.
1526 Conversion of various internal flat data structures to use
1527 database records for increased performance and
1528 flexibility.
1530 Support for acting as a MS-DFS (Distributed File System) server.
1532 Support for manipulating Samba shares using Windows client tools
1533 (server manager). Per share security can be set using these tools
1534 and Samba will obey the access restrictions applied.
1536 Samba profiling support (see below).
1538 Compile time option for enabling a (Virtual file system) VFS layer 
1539 to allow non-disk resources to be exported as Windows filesystems
1540 (such as databases etc.).
1542 The documentation in this release has been updated and converted
1543 from Yodl to DocBook 4.1. There are many new parameters since 2.0.7
1544 and some defaults have changed.
1546 Profiling support.
1547 ------------------
1548 Support for collection of profile information. A shared 
1549 memory area has been created which contains counters for
1550 the number of calls to and the amount of time spent in
1551 various system calls, smb transactions and nmbd activity. See 
1552 the file profile.h for a complete listing of the information 
1553 collected. Sample code for a samba pmda (collection agent
1554 for Performance Co-Pilot) has been included in the pcp
1555 directory. 
1557 To enable the profile data collection code in samba, you must 
1558 compile samba with profile data support (run configure with 
1559 the --with-profiling-data option). On startup, collection of 
1560 data is disabled. To begin collecting data use the smbcontrol
1561 program to turn on profiling (see the smbcontrol man page).
1562 Profile information collection can be enabled for nmbd, all smbd
1563 processes or one or more selected processes. The profiling
1564 data collected is the aggregate for all processes that have
1565 profiling enabled.
1567 With samba compiled for profile data collection, you may see
1568 a very slight degradation in performance even with profiling
1569 collection turned off. On initial tests with NetBench on an
1570 SGI Origin 200 server, this degradation was not measurable 
1571 with profile collection off compared to no profile collection
1572 compiled into samba.
1574 With count profile collection enabled on all clients, the 
1575 degradation was less than 2%. With full profile collection 
1576 enabled on all clients, the degradation was about 8.5%. 
1578 =====================================================================
1580 If you think you have found a bug please email a report to :
1582         samba@samba.org
1584 As always, all bugs are our responsibility.
1586 Regards,
1588         The Samba Team.