Skip to content

raw: Prohibit dangerous writes for probed images

Kevin Wolf qemu-devel 3 versions – Applied

Status from this message: Thanks, applied to my block-next tree:

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v3 Latest9 patches 7 repliesApplied
  2. v29 patches 27 repliesSuperseded
  3. v14 patches 5 repliesSuperseded

Changes in v3 from the cover letter

- Patch 5/6: Improved function comment [Max]
- Patch 7: Handle nb_sectors == 0 case [Stefan]
- Patch 7: Even longer error message [Eric]
- Patch 9: Don't create a vhdx image in a test for raw, it might not be compiled in. Use sample images instead, including the more exotic formats. Add a new sample image containing a GRUB MBR. [Max, Eric]

Patches in v3 Applied

#Subject and filesSizeRepliesApplied
1/9qemu-io: Allow explicitly specifying formatqemu-io.c+20 -80 replies
2/9qemu-iotests: Use qemu-io -f $IMGFMTtests/qemu-iotests/016 tests/qemu-iotests/048 tests/qemu-iotests/058 +7 more+36 -240 replies
3/9qemu-iotests: Add qemu-io format option in Python teststests/qemu-iotests/030 tests/qemu-iotests/040 tests/qemu-iotests/055+36 -360 replies
4/9qtests: Specify image format explicitlytests/ahci-test.c tests/bios-tables-test.c tests/drive_del-test.c +9 more+21 -180 replies
5/9block: Factor bdrv_probe_all() out of find_image_format()block.c+35 -130 replies
6/9block: Read only one sector for format probingblock.c include/block/block_int.h+5 -30 replies
7/9raw: Prohibit dangerous writes for probed imagesblock.c block/raw_bsd.c include/block/block_int.h+69 -34 replies
8/9qemu-iotests: Fix stderr handling in common.qemutests/qemu-iotests/common.qemu+2 -10 replies
9/9qemu-iotests: Test writing non-raw image headers to raw imagetests/qemu-iotests/109 tests/qemu-iotests/109.out tests/qemu-iotests/group +1 more+364 -02 replies

Reviews trailers per patch

All 9 patches have a Reviewed-by or Acked-by.

PatchStefan HajnocziEric BlakeMax Reitz
1/9R-b R-b R-b
2/9R-b R-b
3/9R-b R-b
4/9R-b R-b
5/9R-b R-b
6/9R-b R-b
7/9R-b R-b R-b
8/9R-b R-b R-b
9/9R-b

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes. Scroll the table sideways for all 3 reviewers.

Read the v3 thread

Cover letter [Qemu-devel] [PATCH v3 0/9] raw: Prohibit dangerous writes for probed images

See the commit message of patch 7 for the why and how. This series will probably be only part of the solution and doesn't mean that we should stop looking for other patches which improve different parts of the problem.

See the mailing list thread "Image probing: how it can be insecure, and what we could do about it" for the complete context.

v3:
- Patch 5/6: Improved function comment [Max]
- Patch 7: Handle nb_sectors == 0 case [Stefan]
- Patch 7: Even longer error message [Eric]
- Patch 9: Don't create a vhdx image in a test for raw, it might not be compiled in. Use sample images instead, including the more exotic formats. Add a new sample image containing a GRUB MBR. [Max, Eric]

v2:
- Fixed offset in qemu_iovec_concat [Kevin]
- Added paragraph to patch 7 explaining that we're not breaking additional cases, but only change the failure mode of already broken scenarios [Max]
- Added a warning when opening an image in "restricted raw" mode, which required a few more patches to make the test cases avoid this warning [Markus]

Kevin Wolf (8):
qemu-io: Allow explicitly specifying format
qemu-iotests: Use qemu-io -f $IMGFMT
qemu-iotests: Add qemu-io format option in Python tests
qtests: Specify image format explicitly
block: Read only one sector for format probing

  raw: Prohibit dangerous writes for probed images
  qemu-iotests: Fix stderr handling in common.qemu
  qemu-iotests: Test writing non-raw image headers to raw image

Markus Armbruster (1):
block: Factor bdrv_probe_all() out of find_image_format()

 block.c                                           |  51 +++--
 block/raw_bsd.c                                   |  64 +++++-
 include/block/block_int.h                         |   5 +
 qemu-io.c                                         |  28 ++-
 tests/ahci-test.c                                 |   3 +-
 tests/bios-tables-test.c                          |   2 +-
 tests/drive_del-test.c                            |   2 +-
 tests/fdc-test.c                                  |   2 +-
 tests/hd-geo-test.c                               |   2 +-
 tests/i440fx-test.c                               |   5 +-
 tests/ide-test.c                                  |   9 +-
 tests/nvme-test.c                                 |   2 +-
 tests/qemu-iotests/016                            |  11 +-
 tests/qemu-iotests/030                            |  22 +--
 tests/qemu-iotests/040                            |  32 +--
 tests/qemu-iotests/048                            |   2 +-
 tests/qemu-iotests/055                            |  18 +-
 tests/qemu-iotests/058                            |  11 +-
 tests/qemu-iotests/071                            |  10 +-
 tests/qemu-iotests/071.out                        |   6 +-
 tests/qemu-iotests/077                            |   2 +-
 tests/qemu-iotests/081                            |   8 +-
 tests/qemu-iotests/081.out                        |   2 +-
 tests/qemu-iotests/089                            |   6 +-
 tests/qemu-iotests/109                            | 132 +++++++++++++
 tests/qemu-iotests/109.out                        | 231 ++++++++++++++++++++++
 tests/qemu-iotests/common                         |   2 +-
 tests/qemu-iotests/common.qemu                    |   3 +-
 tests/qemu-iotests/group                          |   1 +
 tests/qemu-iotests/sample_images/grub_mbr.raw.bz2 | Bin 0 -> 552 bytes
 tests/usb-hcd-uhci-test.c                         |   2 +-
 tests/usb-hcd-xhci-test.c                         |   2 +-
 tests/virtio-blk-test.c                           |   4 +-
 tests/virtio-scsi-test.c                          |   4 +-
 34 files changed, 584 insertions(+), 102 deletions(-)
 create mode 100755 tests/qemu-iotests/109
 create mode 100644 tests/qemu-iotests/109.out
 create mode 100644 tests/qemu-iotests/sample_images/grub_mbr.raw.bz2
Signature · 1 line
1.8.3.1