This product is not supported for your selected Datadog site. ().

Metadata

ID: python-flask/os-system-unsanitized-data

Language: Python

Severity: Error

Category: Security

CWE: 78

Description

Use of unsanitized from incoming request to execute a command may lead to command injection. It is highly recommended that data is checked and sanitized before use.

Learn More

Non-Compliant Code Examples

import flask import os  app = flask.Flask(__name__)  @app.route("/route/to/resource/<resource_id>") def resource2(resource_id):     file1 = subprocess.call(resource_id)     file2 = subprocess.capture_output(f"/path/to/{resource_id}")  @app.route("/route/to/resource/<resource_id>") def resource2(resource_id):     file4 = os.system("/path/to/{0}".format(resource_id))     os.system(request.remote_addr)     bla = os.system(request.foo)  @app.route("/route/to/resource") def resource2():     resource_id = flask.request.args.get("resource_id")     subprocess.call(resource_id)     subprocess.run(["command", resource_id])  @app.route("/route/to/resource") def resource3():     resource_id = request.args['resource_id'];     subprocess.call(resource_id)     subprocess.run(["command", resource_id]) 

Compliant Code Examples

import flask import os  app = flask.Flask(__name__)  @app.route("/route/to/resource/<resource_id>") def resource2(resource_id):     file1 = subprocess.call(sanitize(resource_id))     file2 = subprocess.capture_output(f"/path/to/{sanitize(resource_id)}") 
https://static.datadoghq.com/static/images/logos/github_avatar.svg https://static.datadoghq.com/static/images/logos/vscode_avatar.svg jetbrains

Seamless integrations. Try Datadog Code Security