2020-06-30 12:49:37 +02:00
|
|
|
include::../description.adoc[]
|
|
|
|
|
|
|
|
include::../ask-yourself.adoc[]
|
|
|
|
|
|
|
|
include::../recommended.adoc[]
|
|
|
|
|
2022-09-28 10:23:01 +02:00
|
|
|
|
2020-06-30 12:49:37 +02:00
|
|
|
== Sensitive Code Example
|
|
|
|
|
2022-09-28 10:23:01 +02:00
|
|
|
[source,python]
|
|
|
|
----
|
|
|
|
import os
|
|
|
|
|
|
|
|
@app.route("/kill-pid/<pid>")
|
|
|
|
def send_signal(pid):
|
|
|
|
os.kill(pid, 9) # Sensitive
|
|
|
|
|
|
|
|
@app.route("/kill-pgid/<pgid>")
|
|
|
|
def send_signal(pgid):
|
|
|
|
os.killpg(pgid, 9) # Sensitive
|
|
|
|
----
|
|
|
|
|
|
|
|
== Compliant Solution
|
|
|
|
|
|
|
|
[source,python]
|
2020-06-30 12:49:37 +02:00
|
|
|
----
|
|
|
|
import os
|
|
|
|
|
2022-09-28 10:23:01 +02:00
|
|
|
@app.route("/kill-pid/<pid>")
|
|
|
|
def send_signal(pid):
|
|
|
|
# Validate the untrusted PID,
|
|
|
|
# With a pre-approved list or authorization checks
|
|
|
|
if is_valid_pid(pid):
|
|
|
|
os.kill(pid, 9)
|
|
|
|
|
|
|
|
@app.route("/kill-pgid/<pgid>")
|
|
|
|
def send_signal(pgid):
|
|
|
|
# Validate the untrusted PGID,
|
|
|
|
# With a pre-approved list or authorization checks
|
|
|
|
if is_valid_pgid(pgid):
|
|
|
|
os.kill(pgid, 9)
|
2020-06-30 12:49:37 +02:00
|
|
|
----
|
|
|
|
|
|
|
|
include::../see.adoc[]
|
2023-06-22 10:38:01 +02:00
|
|
|
|
2021-09-20 15:38:42 +02:00
|
|
|
ifdef::env-github,rspecator-view[]
|
|
|
|
|
|
|
|
'''
|
|
|
|
== Implementation Specification
|
|
|
|
(visible only on this page)
|
|
|
|
|
|
|
|
include::../message.adoc[]
|
|
|
|
|
|
|
|
endif::env-github,rspecator-view[]
|