CVE-2020-12770: easy backport of sg code
Subsystems (2)
Hi!
So let me investigate... Mainline fix is commit 83c6f2390040f188cc25b270b4befeb5628c1aee.
Backport for 4.19 looks really easy, and I can't see anything wrong there:
commit c45e3bcdebb204ef1ba1d00f41fe7ed39c4dd8cd
Author: Pavel Machek <[email protected]> Date: Thu May 14 23:47:42 2020 +0200
Backport.
commit 83c6f2390040f188cc25b270b4befeb5628c1aee
...
scsi: sg: add sg_remove_request in sg_write
If the __copy_from_user function failed we need to call sg_remove_request
in sg_write.
drivers/scsi/sg.c +3 -1
@@ -694,8 +694,10 @@ sg_write(struct file *filp, const char __user *buf, size_t count, loff_t * ppos) hp->flags = input_size;/* structure abuse ... */ hp->pack_id = old_hdr.pack_id; hp->usr_ptr =NULL ; -if (__copy_from_user (cmnd, buf, cmd_size)) +if (__copy_from_user (cmnd, buf, cmd_size)) { +sg_remove_request (sfp, srp);return -EFAULT ; + }/* * SG_DXFER_TO_FROM_DEV is functionally equivalent to SG_DXFER_FROM_DEV, * but is is possible that the app intended SG_DXFER_TO_DEV, because there
And I don't see a problem with 4.4, either.
Best regards,
Pavel
Signature · 2 lines
(english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#4621): https://lists.cip-project.org/g/cip-dev/message/4621
Mute This Topic: https://lists.cip-project.org/mt/74215710/4520388
Group Owner: [email protected]
Unsubscribe: https://lists.cip-project.org/g/cip-dev/leave/8129055/727948398/xyzzy [[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-
Hi Pavel,
Thanks for your work.
I was also working on this.
But the same patch seems to have already been posted by Guenter Roeck.
https://lore.kernel.org/stable/[email protected]/
Best regards,
Nobuhiro
Quoted 49 lines
-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of Pavel Machek
Sent: Friday, May 15, 2020 6:56 AM
To: [email protected]
Subject: [cip-dev] CVE-2020-12770: easy backport of sg codeHi!
So let me investigate... Mainline fix is commit
83c6f2390040f188cc25b270b4befeb5628c1aee.Backport for 4.19 looks really easy, and I can't see anything wrong there:
commit
c45e3bcdebb204ef1ba1d00f41fe7ed39c4dd8cdAuthor: Pavel Machek <[email protected]> Date: Thu May 14 23:47:42 2020 +0200Backport.
commit
83c6f2390040f188cc25b270b4befeb5628c1aee
...
scsi: sg: addsg_remove_requestinsg_writeIf the
__copy_from_userfunction failed we need to callsg_remove_request
insg_write.Acked-by Douglas Gilbert <[email protected]>Signed-off-by Wu Bo <[email protected]>Signed-off-by Martin K. Petersen <[email protected]>drivers/scsi/sg.c +3
-1@@ -694,8 +694,10 @@ sg_write(struct file *filp, const char __user *buf, size_t count, loff_t * ppos) hp->flags = input_size;/* structure abuse ... */ hp->pack_id = old_hdr.pack_id; hp->usr_ptr =NULL ; -if (__copy_from_user (cmnd, buf, cmd_size)) +if (__copy_from_user (cmnd, buf, cmd_size)) { +sg_remove_request (sfp, srp);return -EFAULT ; + }/* * SG_DXFER_TO_FROM_DEV is functionally equivalent to SG_DXFER_FROM_DEV, * but is is possible that the app intended SG_DXFER_TO_DEV, because there
Quoted 7 lines
And I don't see a problem with 4.4, either.
Best regards,
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#4622): https://lists.cip-project.org/g/cip-dev/message/4622
Mute This Topic: https://lists.cip-project.org/mt/74215710/4520388
Group Owner: [email protected]
Unsubscribe: https://lists.cip-project.org/g/cip-dev/leave/8129055/727948398/xyzzy [[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-