google-nomulus/core
Michael Muller dc88b48772
Disallow admin triggering of internal endpoints (#1030)
* Disallow admin triggering of internal endpoints

Stop simply relying on the presence of the X-AppEngine-QueueName as an
indicator that an endpoint has been triggered internally, as this allows
admins to trigger a remote execution vulnerability.

We now supplement this check by ensuring that there is no authenticated user.
Since only an admin user can set these headers, this means that the header
must have been set by an internal request.

Tested:
  In addition to the new unit test, verified on Crash that:
  - Internal requests are still getting authenticated via the internal auth
    mechanism.
  - Admin requests with the X-AppEngine-QueueName header are rejected as
    "unauthorized."

* Reformatted.
2021-03-23 08:50:56 -04:00
..
gradle/dependency-locks Update more dependencies to newer versions (#999) 2021-03-10 11:22:07 -05:00
src Disallow admin triggering of internal endpoints (#1030) 2021-03-23 08:50:56 -04:00
WEB-INF/appengine-generated Enable Cloud SQL when Datastore is enabled for unit test (#502) 2020-03-10 12:26:25 -04:00
build.gradle Use shared jar to stage BEAM pipeline if possible (#1008) 2021-03-16 13:19:30 -04:00
Dockerfile Build docker image of nomulus tool (#142) 2019-07-16 20:18:44 -04:00
karma.conf.js Clean up generated sources configuration (#724) 2020-07-30 15:43:42 -04:00