About the comment "users with a custom wsize", note that I didn't set a
custom wsize.

This is the script I am using to mount the SMB 1.0 shares:

https://github.com/rdiez/Tools/blob/master/MountWindowsShares/mount-
windows-shares-sudo.sh

There is no wsize parameter there. I did write above that the wsize
value I am seeing seems to be the default, and I don't recall having
adjusted any such SMB / CIFS parameter anywhere on my systems.


About the comment "Most users will want to use the 6.2 HWE kernel until this is 
fixed", this is rather hard to do at the moment. If you install HWE (by means 
of linux-generic-hwe-22.04, which may be there by default), the system will not 
offer you a way to stay with 6.2. Under package linux-generic-hwe-22.04 you 
will find only one 5.15 and one 6.5 version now, so there is no easy way to go 
back to and stay with 6.2.

I asked about this in the "original description" of this bug report,
which is now hidden under a link at the top of this report. As I got no
answer, I investigated further, and this is how I blocked the 6.5
kernels on a critical PC I have:

echo -e "Package: linux-image*-6.5.*\nPin: release *\nPin-Priority: -1"
| sudo tee /etc/apt/preferences.d/99-${USER}-prevent-upgrade-to-
kernel-6.5.pref

This blocking is probably problematic. First of all, if a new kernel
version like 6.6 is released, the block will no longer work. There is
also no guarantee that the system will not download further 5.15 kernels
and evict the 6.2 kernel for lack of space in the /boot partition, as
there is now nothing that requires the 6.2 version (linux-generic-
hwe-22.04 got automatically uninstalled upon applying the block above).

Furthermore, I also understand that 6.2 is (or will soon be) no longer
supported. This is probably a shortcoming of choosing non "long term
support" kernels for such HWE upgrades.

-- 
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/2049634

Title:
  smb1: wsize blocks of bytes followed with binary zeros on copy,
  destroying data

Status in linux package in Ubuntu:
  In Progress
Status in linux source package in Mantic:
  In Progress
Status in linux source package in Noble:
  In Progress

Bug description:
  [Impact]

  Upon installing the 6.5 HWE kernel on Jammy, users with a custom wsize
  set will see data destruction when copying files from their systems
  onto a cifs smb 1.0 mount.

  wsize defaults to 65535 bytes, but when set to smaller values, like
  16850, users will see blocks of 16850 bytes copied over, followed by
  3900 binary zeros, followed by the next block of data followed by more
  binary zeros.

  A workaround is to increase wsize, but this only works for small
  files, as any files larger than wsize will see the bug.

  Most users will want to use the 6.2 HWE kernel until this is fixed.

  [Testcase]

  Start two VMs, one for the server, and the other, the client.

  Server
  ------

  $ sudo apt update
  $ sudo apt upgrade
  $ sudo apt install samba
  $ sudo vim /etc/samba/smb.conf 
  server min protocol = NT1
  [sambashare]
      comment = Samba on Ubuntu
      path = /home/ubuntu/sambashare
      read only = no
      browsable = yes
  $ mkdir ~/sambashare
  $ sudo smbpasswd -a ubuntu

  Client
  ------

  $ sudo apt update
  $ sudo apt install cifs-utils
  $ mkdir ~/share
  $ sudo mount -t cifs -o username=ubuntu,vers=1.0,wsize=16850 
//192.168.122.172/sambashare ~/share
  $ ( set -o pipefail && head --bytes=$(( 55 * 1000 )) /dev/zero | openssl enc 
-aes-128-ctr -nosalt -pass "pass:my-seed" -iter 1 | hexdump --no-squeezing 
--format '40/1 "%02x"' --format '"\n"' >"testdata.txt" )
  $ sha256sum testdata.txt 
  9ec09af020dce3270ea76531141940106f173c7243b7193a553480fb8500b3f2  testdata.txt

  Now copy the file to the share.

  Client
  ------
  $ cp testdata.txt share/

  Server
  ------
  $ sha256sum sambashare/testdata.txt 
  9e573a0aa795f9cd4de4ac684a1c056dbc7d2ba5494d02e71b6225ff5f0fd866  
sambashare/testdata.txt

  The SHA256 hash is different. If you view the file with less, you will
  find a block of wsize=16850 bytes, then 3900 bytes of binary zeros,
  followed by another wsize=16850 bytes, then 3900 bytes of binary
  zeros, etc.

  An example of a broken file is:
  https://launchpadlibrarian.net/712573213/testdata-back-from-server.txt

  [Where problems could occur]

  [Other info]

  Currently bisecting. Introduced in 6.3-rc1. Currently broken on
  mainline 6.8-rc3.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2049634/+subscriptions


-- 
Mailing list: https://launchpad.net/~kernel-packages
Post to     : kernel-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kernel-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to