btrfs-progs: better document btrfs receive security
Subsystems (2)
PATCH 1/1 btrfs-progs: better document btrfs receive security
This adds some extra documentation to the btrfs-receive manpage that explains some of the security related aspects of btrfs-receive. The first part covers the fact that the subvolume being received is writable until the receive finishes, and the second covers the current lack of sanity checking of the send stream.
---
Inspired by a recent thread on the ML.
This could probably be more thorough, but I felt it was more important to get it documented as quickly as possible, and this should cover the basic info that most people will care about.
Documentation/btrfs-receive.asciidoc | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+)
Documentation/btrfs-receive.asciidoc +20 -0
@@ -68,6 +68,26 @@ dump the stream metadata, one line per operation + Does not require the 'path' parameter. The filesystem chanded. +SECURITY +-------- +Because of how *btrfs receive* works, subvolumes that are in the +process of being received are writable. As a result of this, there +is a possibility that a subvolume for which the receive operation just +completed may not be identical to the originally sent subvolume. + +To avoid this in cases where more than one user may have access to the +area the received subvolumes are being stored, it is reccommended to +receive subvolumes into a staging area which is only accessible to the +user who is running receive, and then move then into the final destination +when the receive command completes. + +Additionally, receive does not currently do a very good job of validating +that an incremental send streams actually makes sense, and it is thus +possible for a specially crafted send stream to create a subvolume with +reflinks to arbitrary files in the same filesystem. Because of this, +users are advised to not use *btrfs receive* on send streams from +untrusted sources. + EXIT STATUS ----------- *btrfs receive* returns a zero exit status if it succeeds. Non zero is
Signature · 1 line
2.11.0
David Sterba
AppliedQuoted 7 lines · Austin S. Hemmelgarn
This adds some extra documentation to the btrfs-receive manpage that explains some of the security related aspects of btrfs-receive. The first part covers the fact that the subvolume being received is writable until the receive finishes, and the second covers the current lack of sanity checking of the send stream.
Signed-off-by Austin S. Hemmelgarn <[email protected]>
Applied, thanks.
Quoted 11 lines · David Sterba
Quoted 7 lines · Austin S. Hemmelgarn
This adds some extra documentation to the btrfs-receive manpage that explains some of the security related aspects of btrfs-receive. The first part covers the fact that the subvolume being received is writable until the receive finishes, and the second covers the current lack of sanity checking of the send stream.
Signed-off-by Austin S. Hemmelgarn <[email protected]>Applied, thanks.
Didn't get a chance to mention this yesterday, but it looks like you hadn't seen the updated version I sent on the third. Message ID is:
<[email protected]>
The only significant difference is that I updated the description for the writablility issue using a much better description from Graham Cobb (with his permission of course).
If you want, I can send an incremental patch on top of the original to update just that description.
Quoted 8 lines · Austin S. Hemmelgarn
Quoted 7 lines · David Sterba
Quoted 6 lines · Austin S. Hemmelgarn
This adds some extra documentation to the btrfs-receive manpage that explains some of the security related aspects of btrfs-receive. The first part covers the fact that the subvolume being received is writable until the receive finishes, and the second covers the current lack of sanity checking of the send stream.
Quoted 7 lines
Quoted 4 lines
Quoted 1 line
Signed-off-by Austin S. Hemmelgarn <[email protected]>Applied, thanks.
Didn't get a chance to mention this yesterday, but it looks like you hadn't seen the updated version I sent on the third. Message ID is:
<[email protected]>
Ah sorry I missed that.
Quoted 6 lines
The only significant difference is that I updated the description for the writablility issue using a much better description from Graham Cobb (with his permission of course).
If you want, I can send an incremental patch on top of the original to update just that description.
No need to, I'll replace the patch with the latest version. Thanks.
Am Fri, 3 Feb 2017 08:48:58 -0500
schrieb "Austin S. Hemmelgarn" <[email protected]>:
Quoted 2 lines
+user who is running receive, and then move then into the final
destination ^^^^
Typo? s/then/them/?
Signature · 4 lines
Regards, Kai Replies to list-only preferred.
Am Fri, 3 Feb 2017 08:48:58 -0500
schrieb "Austin S. Hemmelgarn" <[email protected]>:
Review
Quoted 2 lines
(quoted diff) +2
-0+that an incremental send streams actually makes sense, and it is thus +possible for a specially crafted send stream to create a subvolume
Sorry for the noise... Another one: shouldn't it say "sent stream" (minus s) and "sent"?
Signature · 4 lines
Regards, Kai Replies to list-only preferred.