[wp-trac] [WordPress Trac] #45940: WSOD protection should disable plugins in fewer situations
WordPress Trac
noreply at wordpress.org
Fri Jan 11 15:35:13 UTC 2019
#45940: WSOD protection should disable plugins in fewer situations
--------------------------+-----------------------------
Reporter: markjaquith | Owner: (none)
Type: defect (bug) | Status: new
Priority: high | Milestone: Awaiting Review
Component: General | Version:
Severity: critical | Keywords:
Focuses: |
--------------------------+-----------------------------
[44524] implemented WSOD protection, for #44458. I have concerns about how
aggressively it pauses plugins.
It is possible to get a plugin paused in the admin by triggering a fatal
error on the front of the site. Furthermore, that fatal error could be
triggered by specific user input (maliciously, even). If this is a plugin
that implements 2FA or SAML or admin event logging or permissions
filtering or login attempt limiting or any other security- or
authentication-related function, this could have dire effects on the site.
Bad actors could have a way of targeting and disabling critical site
functionality.
I think the scenarios where this pausing occurs should be narrowed. To
start, I propose that pausing not happen for:
1. POST requests.
2. Requests with a query string other than `?p=X` (or a few other standard
WordPress query strings we can whitelist).
For example, if a contact form submission, in certain circumstances, can
result in a fatal error, this should not pause that plugin. If some
`?obscure-query-arg=BAD_INPUT` URL on a site can result in a fatal error,
this should not pause the plugin.
If a plugin is taking down the entire site, or preventing a user from
logging in, **that** is the dead end scenario we'd like to prevent, and
those are the situations in which it's an acceptable trade-off to pause
that functionality so that the site owner can take steps to recover more
gracefully than they could in the past.
See also #45888 which proposes that critical plugins (where the plugin
itself knows that it's better to take the site down than have its
functionality disabled) have a way of opting out of WSOD protection.
--
Ticket URL: <https://core.trac.wordpress.org/ticket/45940>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform
More information about the wp-trac
mailing list