-
Notifications
You must be signed in to change notification settings - Fork 19
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Deserialization arbitrary code execution attack #93
Comments
Thank you, I will look into it. |
FWIW - AFAICT yes. You can use qs to replicate the following example given by George Stagg in https://mstdn.social/@gws/112359739655466497 |
Updated on github. R 4.4 throws an error if you try to unserialize a promise. I actually think that's the wrong approach, instead I replace it with NULL and issue a warning.
Editorial: I agree with gws on mastadon, I don't think this is a big deal, the issue is equivalent to if you ran |
Agree completely. Mainly came to flag for awareness and saw the issue already. |
On CRAN now |
Hm, I understand the security concern, but the patch is breaking a few hundred ggplot2/ggiraph objects stored to disk being used in our reports (longer story why we pre-store these to disk). Except for locally rolling back to qs 0.26.1 (0.26.2 is not in the CRAN archive?), is there a way to avoid replacing the PROMSXP with NULL if I trust these files? An override_safety argument perhaps? |
An override argument sounds reasonable. |
@sda030 Try the latest commit with your previous ggplots and let me know if it works. New function Standard behavior: evaluate promises during save, don't allow promises during read.
With
|
Thanks for quick response @traversc! And sorry for my late response. P.S. Will completely change my setup this summer to avoid pre-storing the plots for the future. |
The global option changes both saving and reading files, so you should be able to read previously saved promises from earlier versions of R / qs. |
I swear it did not work the first time, but maybe I missed a step. Now it works consistently, also with reading in a ggobj. I also tested turning it off and on again. Nice! Thank you very much for swift action. :) |
@traversc, may I politely request a patch release on CRAN before August? (I try to protect my less-technically oriented colleagues from R's many ideosyncracies such as Rtools, devtools::install_github(), etc) |
Fixed with latest update on CRAN |
Is the
qs
format susceptible to the same type of deserialization attack underlying the recent RDS CVE?References:
The text was updated successfully, but these errors were encountered: