Closed (fixed)
Project:
JSON:API
Version:
8.x-2.x-dev
Component:
Documentation
Priority:
Normal
Category:
Task
Assigned:
Unassigned
Issue tags:
Reporter:
Created:
13 Mar 2019 at 18:26 UTC
Updated:
29 Apr 2019 at 14:54 UTC
Jump to comment: Most recent
Comments
Comment #2
xjmFrom @jhodgdon in #3039568-66: Add a read-only mode to JSON:API:
If the page actually says that, we definitely need to remove it. That's something that should never be said of anything, ever. Assume everything has vulnerabilities, somewhere. Information disclosure is certainly still possible, and some other exploits might be able to bypass the protection of read-only mode.
Updating the title because I think others (like @jhodgdon) also have useful input here.
Comment #3
xjmThere we go. :)
Comment #4
wim leersI already addressed #2/@jhodgdon's point "b)" in #3039568-67: Add a read-only mode to JSON:API three days ago, i.e. in https://www.drupal.org/node/3039599/revisions/view/11339448/11340084 🙂
Comment #5
xjmHmmm I still think this is not a claim we should ever make:
I would say "mitigates risks from" rather than "completely eliminates".
Comment #6
wim leersWhy is that not a claim we should ever make? If no writes are allowed at all, validation constraints and write logic are never executed, therefore any hypothetical vulnerabilities in them are impossible to exploit.
Comment #7
xjmRegarding this header:
I think that what's after that header applies regardless of whether or not you're using stable contrib modules. For defense in depth, auditing entity access and restricting access to unneeded resource should be recommmended even if you're using contrib also covered by the sec team. Edit: I'd give each of those things their own header, actually.
Comment #8
xjmCouple other suggestions:
Comment #9
wim leers#7 I agree that wasn't as clear as it should be. Fixed: https://www.drupal.org/node/3039599/revisions/view/11340084/11346954.
Comment #10
wim leersRE: #5 + #6:
Done: https://www.drupal.org/node/3039599/revisions/view/11346954/11346984
Comment #11
wim leers#8.1: Done: https://www.drupal.org/node/3039599/revisions/view/11346984/11347154.
Comment #12
wim leers#8.2: Done: https://www.drupal.org/node/3039599/revisions/view/11347154/11347180
Comment #13
gregglesMore on the idea:
I believe we've seen now 2 different RCE by anonymous where the team could only consider exploit via POST and other researchers found exploits via GET. I don't have links to the research readily at hand, but I think it's fair to say that the attack surface is greatly reduced but not completely closed.
Comment #14
gregglesI've just read the page - my only feedback: maybe the "internal" bullet point could link to some documentation page about what that is?
Otherwise seems great!
Comment #15
xjmThanks @greggles!
I think https://api.drupal.org/api/drupal/core%21lib%21Drupal%21Core%21Entity%21... might be the best reference to link?
Comment #16
wim leers#13: Indeed, this affected
rest.module, as the chat log in #10 says. The JSON:API module didn't have this vulnerability, but I agree that it's imprudent to claim that the JSON:API module is perfectly safe, since we cannot ever assume that of any code.#15: Yes, that'd be the best reference to link. You can update it now, or I can update it in the morning, in ~9 hours.
I'm off to sleep now. 😴
Comment #17
gregglesOkeydoke - added it in.
Comment #18
wim leersHah, I was just about to do that :D Thanks for updating it!
Does
mean we can consider this "done", or do we want to leave this open to encourage more Security Team members to review it?
Comment #19
gregglesI think leave open for a bit at least.
Comment #20
greggles(fixing my credit, in case it matters and to default for the future)
Comment #21
wim leers#19: 👍
#20: Ah yes, crediting all three of us: @xjm, @greggles and I. I will mark this once we're done here, and then we'll all be credited for our work here.
Comment #22
wim leersNearly 3 weeks have passed without more replies. I think it's safe to assume no additional replies will be added.
Comment #23
gregglesAgreed, thanks!
Comment #24
wim leersThanks for confirming :)