Skip to content

Commit 47680c3

Browse files
authored
Added CWE links for several codemods (#964)
* Added CWE information for Sonar and some pixee codemod * Added CWE informatino for Semgrep, Defectdojo, and some pixee codemods * Added missing CWE information for pixee codemods * Changed get to head for url test * Filtered duplicates from queried urls in test
1 parent 7b2d930 commit 47680c3

36 files changed

+86
-14
lines changed

integration_tests/test_codemod_urls.py

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@
1010

1111
async def visit_url(client, url):
1212
try:
13-
response = await client.get(url)
13+
response = await client.head(url)
14+
1415
return url, response.status_code
1516
except httpx.RequestError:
1617
return url, None
@@ -36,9 +37,15 @@ async def check_accessible_urls(urls):
3637

3738
@pytest.mark.asyncio
3839
async def test_codemod_reference_urls():
39-
urls = [
40-
ref.url for codemod in registry.codemods for ref in codemod._metadata.references
41-
]
40+
urls = list(
41+
set(
42+
[
43+
ref.url
44+
for codemod in registry.codemods
45+
for ref in codemod._metadata.references
46+
]
47+
)
48+
)
4249
await check_accessible_urls(urls)
4350

4451

src/core_codemods/add_requests_timeouts.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ def on_result_found(self, original_node, updated_node):
2727
Reference(
2828
url="https://docs.python-requests.org/en/master/user/quickstart/#timeouts"
2929
),
30+
Reference(url="https://cwe.mitre.org/data/definitions/1088"),
3031
],
3132
),
3233
detector=SemgrepRuleDetector(

src/core_codemods/defectdojo/semgrep/avoid_insecure_deserialization.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
LibcstTransformerPipeline,
77
)
88
from codemodder.codemods.utils_mixin import NameResolutionMixin
9+
from codemodder.codetf import Reference
910
from core_codemods.defectdojo.api import DefectDojoCodemod, DefectDojoDetector
1011
from core_codemods.harden_pickle_load import HardenPickleLoad
1112
from core_codemods.harden_pyyaml import CodemodProtocol, HardenPyyamlCallMixin
@@ -56,7 +57,9 @@ def leave_Call(
5657
)
5758
],
5859
),
59-
references=[],
60+
references=[
61+
Reference(url="https://cwe.mitre.org/data/definitions/502"),
62+
],
6063
),
6164
transformer=LibcstTransformerPipeline(
6265
AvoidInsecureDeserializationTransformer, HardenPickleLoad

src/core_codemods/defectdojo/semgrep/django_secure_set_cookie.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
LibcstTransformerPipeline,
77
)
88
from codemodder.codemods.utils_mixin import NameResolutionMixin
9+
from codemodder.codetf import Reference
910
from core_codemods.defectdojo.api import DefectDojoCodemod, DefectDojoDetector
1011
from core_codemods.secure_cookie_mixin import SecureCookieMixin
1112

@@ -50,7 +51,9 @@ def leave_Call(self, original_node: cst.Call, updated_node: cst.Call) -> cst.Cal
5051
)
5152
],
5253
),
53-
references=[],
54+
references=[
55+
Reference(url="https://cwe.mitre.org/data/definitions/614"),
56+
],
5457
),
5558
transformer=LibcstTransformerPipeline(DjangoSecureSetCookieTransformer),
5659
detector=DefectDojoDetector(),

src/core_codemods/disable_graphql_introspection.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,12 @@ def _is_introspection_rule_or_starred(
127127
Reference(
128128
url="https://owasp.org/www-project-web-security-testing-guide/v42/4-Web_Application_Security_Testing/12-API_Testing/01-Testing_GraphQL#introspection-queries",
129129
),
130+
Reference(
131+
url="https://cwe.mitre.org/data/definitions/200",
132+
),
133+
Reference(
134+
url="https://cwe.mitre.org/data/definitions/669",
135+
),
130136
],
131137
),
132138
transformer=LibcstTransformerPipeline(DisableGraphQLIntrospectionTransform),

src/core_codemods/django_debug_flag_on.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ class DjangoDebugFlagOn(SimpleCodemod):
1616
Reference(
1717
url="https://docs.djangoproject.com/en/4.2/ref/settings/#std-setting-DEBUG"
1818
),
19+
Reference(url="https://cwe.mitre.org/data/definitions/489"),
1920
],
2021
)
2122
change_description = "Flip `Django` debug flag to off."

src/core_codemods/django_json_response_type.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ def on_result_found(self, _, updated_node):
5353
Reference(
5454
url="https://cheatsheetseries.owasp.org/cheatsheets/Cross_Site_Scripting_Prevention_Cheat_Sheet.html#output-encoding-for-javascript-contexts"
5555
),
56+
Reference(url="https://cwe.mitre.org/data/definitions/79"),
5657
],
5758
),
5859
transformer=LibcstTransformerPipeline(DjangoJsonResponseTypeTransformer),

src/core_codemods/django_session_cookie_secure_off.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ class DjangoSessionCookieSecureOff(SimpleCodemod):
1616
Reference(
1717
url="https://docs.djangoproject.com/en/4.2/ref/settings/#session-cookie-secure"
1818
),
19+
Reference(url="https://cwe.mitre.org/data/definitions/614"),
1920
],
2021
)
2122
change_description = "Sets Django's `SESSION_COOKIE_SECURE` flag if off or missing."

src/core_codemods/enable_jinja2_autoescape.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ def on_result_found(self, original_node, updated_node):
3030
Reference(
3131
url="https://jinja.palletsprojects.com/en/3.1.x/api/#autoescaping"
3232
),
33+
Reference(url="https://cwe.mitre.org/data/definitions/79"),
3334
],
3435
),
3536
detector=SemgrepRuleDetector(

src/core_codemods/file_resource_leak.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,8 +73,8 @@ def line_filter(x):
7373
summary="Automatically Close Resources",
7474
review_guidance=ReviewGuidance.MERGE_WITHOUT_REVIEW,
7575
references=[
76-
Reference(url="https://cwe.mitre.org/data/definitions/772.html"),
77-
Reference(url="https://cwe.mitre.org/data/definitions/404.html"),
76+
Reference(url="https://cwe.mitre.org/data/definitions/404"),
77+
Reference(url="https://cwe.mitre.org/data/definitions/772"),
7878
],
7979
),
8080
transformer=LibcstTransformerPipeline(FileResourceLeakTransformer),

0 commit comments

Comments
 (0)