Continuous Security Testing with CVSS Vulnerability Scoring
173
104
69
25.9 min
| Test Name | Parameters | Description | Status | CVSS Score (Baseline) | Severity | Duration |
|---|---|---|---|---|---|---|
| Users cannot edit the admin account password |
_pytest_bdd_example: {'nonAdminType': 'clerk'} |
Non Admin users should not be able to edit the password of the admin account by posting to the API. | PASS | 8.6 | HIGH | 0.24s |
| Users cannot edit the admin account password |
_pytest_bdd_example: {'nonAdminType': 'technician'} |
Non Admin users should not be able to edit the password of the admin account by posting to the API. | PASS | 8.6 | HIGH | 0.07s |
| Users cannot edit the admin account password |
_pytest_bdd_example: {'nonAdminType': 'nurse'} |
Non Admin users should not be able to edit the password of the admin account by posting to the API. | PASS | 8.6 | HIGH | 0.05s |
| Users cannot edit the admin account password |
_pytest_bdd_example: {'nonAdminType': 'doctor'} |
Non Admin users should not be able to edit the password of the admin account by posting to the API. | PASS | 8.6 | HIGH | 0.05s |
| Users can edit their own passwords |
_pytest_bdd_example: {'nonAdminType': 'clerk'} |
Non Admin users should be able to edit their passwords | PASS | 7.7 | HIGH | 0.13s |
| Users can edit their own passwords |
_pytest_bdd_example: {'nonAdminType': 'technician'} |
Non Admin users should be able to edit their passwords | PASS | 7.7 | HIGH | 0.09s |
| Users can edit their own passwords |
_pytest_bdd_example: {'nonAdminType': 'nurse'} |
Non Admin users should be able to edit their passwords | PASS | 7.7 | HIGH | 0.07s |
| Users can edit their own passwords |
_pytest_bdd_example: {'nonAdminType': 'doctor'} |
Non Admin users should be able to edit their passwords | PASS | 7.7 | HIGH | 0.07s |
| Test Name | Parameters | Description | Status | CVSS Score (Baseline) | Severity | Duration |
|---|---|---|---|---|---|---|
| Brute force attack on login page causes lockout |
username: admin password: Admin123 cleanup_clear_user_lockout: doctor |
Tests whether the system will lockout an attacker from a brute force attack. | PASS | 9.2 | CRITICAL | 22.29s |
| Brute force attack on login page causes lockout |
username: doctor password: Doctor123 cleanup_clear_user_lockout: doctor |
Tests whether the system will lockout an attacker from a brute force attack. | PASS | 9.2 | CRITICAL | 20.35s |
| Brute force attack on login page causes lockout |
username: nurse password: Nurse123 cleanup_clear_user_lockout: doctor |
Tests whether the system will lockout an attacker from a brute force attack. | PASS | 9.2 | CRITICAL | 20.36s |
| Brute force attack on login page causes lockout |
username: clerk password: Clerk123 cleanup_clear_user_lockout: doctor |
Tests whether the system will lockout an attacker from a brute force attack. | PASS | 9.2 | CRITICAL | 20.28s |
| Brute force attack on login page causes lockout |
username: technician password: Technician123 cleanup_clear_user_lockout: doctor |
Tests whether the system will lockout an attacker from a brute force attack. | PASS | 9.2 | CRITICAL | 20.26s |
| Brute force attack on REST API causes lockout |
username: admin password: Admin123 |
Tests whether the system will lockout an attacker from a brute force attack. | PASS | 9.2 | CRITICAL | 0.1s |
| Brute force attack on REST API causes lockout |
username: doctor password: Doctor123 |
Tests whether the system will lockout an attacker from a brute force attack. | PASS | 9.2 | CRITICAL | 0.17s |
| Brute force attack on REST API causes lockout |
username: nurse password: Nurse123 |
Tests whether the system will lockout an attacker from a brute force attack. | PASS | 9.2 | CRITICAL | 0.12s |
| Brute force attack on REST API causes lockout |
username: clerk password: Clerk123 |
Tests whether the system will lockout an attacker from a brute force attack. | PASS | 9.2 | CRITICAL | 0.14s |
| Brute force attack on REST API causes lockout |
username: technician password: Technician123 |
Tests whether the system will lockout an attacker from a brute force attack. | PASS | 9.2 | CRITICAL | 0.13s |
| Brute force password attack via REST API with known admin username |
cleanup_clear_user_lockout: admin |
Tests whether an attacker can login accross the API using a known username and random passwords. | PASS | 10.0 | CRITICAL | 0.11s |
| Brute force password attack with known admin username |
cleanup_clear_user_lockout: admin |
Tests whether an attacker can login to the login page using a known username and random passwords. | PASS | 10.0 | CRITICAL | 22.2s |
| Correct credentials allows login on REST API |
username: admin password: Admin123 |
Tests whether a regular user can log in to the api | PASS | 9.0 | CRITICAL | 0.02s |
| Correct credentials allows login on REST API |
username: doctor password: Doctor123 |
Tests whether a regular user can log in to the api | PASS | 9.0 | CRITICAL | 0.05s |
| Correct credentials allows login on REST API |
username: nurse password: Nurse123 |
Tests whether a regular user can log in to the api | PASS | 9.0 | CRITICAL | 0.04s |
| Correct credentials allows login on REST API |
username: clerk password: Clerk123 |
Tests whether a regular user can log in to the api | PASS | 9.0 | CRITICAL | 0.04s |
| Correct credentials allows login on REST API |
username: technician password: Technician123 |
Tests whether a regular user can log in to the api | PASS | 9.0 | CRITICAL | 0.06s |
| Correct credentials allows login on login page |
username: admin password: Admin123 |
Tests whether a regular user can log in to the webpage | PASS | 9.0 | CRITICAL | 4.36s |
| Correct credentials allows login on login page |
username: doctor password: Doctor123 |
Tests whether a regular user can log in to the webpage | PASS | 9.0 | CRITICAL | 4.21s |
| Correct credentials allows login on login page |
username: nurse password: Nurse123 |
Tests whether a regular user can log in to the webpage | PASS | 9.0 | CRITICAL | 4.03s |
| Correct credentials allows login on login page |
username: clerk password: Clerk123 |
Tests whether a regular user can log in to the webpage | PASS | 9.0 | CRITICAL | 4.21s |
| Correct credentials allows login on login page |
username: technician password: Technician123 |
Tests whether a regular user can log in to the webpage | PASS | 9.0 | CRITICAL | 4.1s |
| Lockout on login page is accessible after 5 minutes |
username: admin password: Admin123 |
Tests whether an account is accessible after a 5 minute waiting period | PASS | 9.0 | CRITICAL | 22.62s |
| Lockout on login page is accessible after 5 minutes |
username: doctor password: Doctor123 |
Tests whether an account is accessible after a 5 minute waiting period | PASS | 9.0 | CRITICAL | 22.57s |
| Lockout on login page is accessible after 5 minutes |
username: nurse password: Nurse123 |
Tests whether an account is accessible after a 5 minute waiting period | PASS | 9.0 | CRITICAL | 22.72s |
| Lockout on login page is accessible after 5 minutes |
username: clerk password: Clerk123 |
Tests whether an account is accessible after a 5 minute waiting period | PASS | 9.0 | CRITICAL | 22.73s |
| Lockout on login page is accessible after 5 minutes |
username: technician password: Technician123 |
Tests whether an account is accessible after a 5 minute waiting period | PASS | 9.0 | CRITICAL | 22.65s |
| Lockout on login page is not accessible at 4 minutes and 50 seconds |
username: admin password: Admin123 |
Tests whether an account is accessible after a 4 minute and 50 second waiting period | PASS | 9.2 | CRITICAL | 24.43s |
| Lockout on login page is not accessible at 4 minutes and 50 seconds |
username: doctor password: Doctor123 |
Tests whether an account is accessible after a 4 minute and 50 second waiting period | PASS | 9.2 | CRITICAL | 24.3s |
| Lockout on login page is not accessible at 4 minutes and 50 seconds |
username: nurse password: Nurse123 |
Tests whether an account is accessible after a 4 minute and 50 second waiting period | PASS | 9.2 | CRITICAL | 24.38s |
| Lockout on login page is not accessible at 4 minutes and 50 seconds |
username: clerk password: Clerk123 |
Tests whether an account is accessible after a 4 minute and 50 second waiting period | PASS | 9.2 | CRITICAL | 24.38s |
| Lockout on login page is not accessible at 4 minutes and 50 seconds |
username: technician password: Technician123 |
Tests whether an account is accessible after a 4 minute and 50 second waiting period | PASS | 9.2 | CRITICAL | 24.31s |
| Lockout on REST API is accessible after 5 minutes |
username: admin password: Admin123 |
Tests whether an account is accessible after a 5 minute waiting period | PASS | 9.0 | CRITICAL | 0.11s |
| Lockout on REST API is accessible after 5 minutes |
username: doctor password: Doctor123 |
Tests whether an account is accessible after a 5 minute waiting period | PASS | 9.0 | CRITICAL | 0.13s |
| Lockout on REST API is accessible after 5 minutes |
username: nurse password: Nurse123 |
Tests whether an account is accessible after a 5 minute waiting period | PASS | 9.0 | CRITICAL | 0.13s |
| Lockout on REST API is accessible after 5 minutes |
username: clerk password: Clerk123 |
Tests whether an account is accessible after a 5 minute waiting period | PASS | 9.0 | CRITICAL | 0.12s |
| Lockout on REST API is accessible after 5 minutes |
username: technician password: Technician123 |
Tests whether an account is accessible after a 5 minute waiting period | PASS | 9.0 | CRITICAL | 0.12s |
| Lockout on REST API is not accessible at 4 minutes and 50 seconds |
username: admin password: Admin123 |
Tests whether an account is accessible after a 4 minute and 50 second waiting period | PASS | 9.2 | CRITICAL | 0.09s |
| Lockout on REST API is not accessible at 4 minutes and 50 seconds |
username: doctor password: Doctor123 |
Tests whether an account is accessible after a 4 minute and 50 second waiting period | PASS | 9.2 | CRITICAL | 0.1s |
| Lockout on REST API is not accessible at 4 minutes and 50 seconds |
username: nurse password: Nurse123 |
Tests whether an account is accessible after a 4 minute and 50 second waiting period | PASS | 9.2 | CRITICAL | 0.1s |
| Lockout on REST API is not accessible at 4 minutes and 50 seconds |
username: clerk password: Clerk123 |
Tests whether an account is accessible after a 4 minute and 50 second waiting period | PASS | 9.2 | CRITICAL | 0.1s |
| Lockout on REST API is not accessible at 4 minutes and 50 seconds |
username: technician password: Technician123 |
Tests whether an account is accessible after a 4 minute and 50 second waiting period | PASS | 9.2 | CRITICAL | 0.09s |
| Test Name | Parameters | Description | Status | CVSS Score (Baseline) | Severity | Duration |
|---|---|---|---|---|---|---|
| The OpenMRS application should not use the default encryption key |
N/A |
The current encrpytion key should not match the default key for the system. | PASS | 10.0 | CRITICAL | 0.02s |
| The OpenMRS application should not use the default encryption vector |
N/A |
The current encrpytion vector should not match the default vector for the system. | PASS | 10.0 | CRITICAL | 0.01s |
| Test Name | Parameters | Description | Status | CVSS Score (Baseline) | Severity | Duration |
|---|---|---|---|---|---|---|
| Replace session cookies with another's session |
browser_name: chromium |
If a session token can be replaced with another, a compromised session token at one location could give an attacker unrestricted access at another | FAIL |
8.6
Recorded Errors raise rewrite_error(error, f"{parsed_st['apiName']}: {error}") from None playwright._impl._errors.TimeoutError: Locator.click: Timeout 30000ms exceeded. Call log: - waiting for get_by_label("My Account") |
HIGH | 36.41s |
| Test Name | Parameters | Description | Status | CVSS Score (Baseline) | Severity | Duration |
|---|---|---|---|---|---|---|
| Appointments should be blocked after reaching max load |
browser_name: chromium _pytest_bdd_example: {'numberOfPatients': '2', 'maxAppointments': '2'} service_name: General Medicine service |
An appointment service should not allow a new appointment after going past the max number | PASS | 6.4 | MEDIUM | 26.1s |
| Appointments should be blocked after reaching max load |
browser_name: chromium _pytest_bdd_example: {'numberOfPatients': '2', 'maxAppointments': '2'} service_name: Outpatient Department |
An appointment service should not allow a new appointment after going past the max number | PASS | 6.4 | MEDIUM | 26.44s |
| Appointments should be blocked after reaching max load |
browser_name: chromium _pytest_bdd_example: {'numberOfPatients': '2', 'maxAppointments': '2'} service_name: Rehabilitation service |
An appointment service should not allow a new appointment after going past the max number | PASS | 6.4 | MEDIUM | 26.15s |
| Test Name | Parameters | Description | Status | CVSS Score (Baseline) | Severity | Duration |
|---|---|---|---|---|---|---|
| Appointments should be blocked after reaching max load |
browser_name: chromium _pytest_bdd_example: {'numberOfPatients': '3', 'maxAppointments': '2'} service_name: General Medicine service |
An appointment service should not allow a new appointment after going past the max number | FAIL |
6.4
Recorded Errors assert successful == maxAppointments, (f"{successful} successful appointments of {numberOfPatients} appointment attempts of a max {maxAppointments} appointments.") AssertionError: 3 successful appointments of 3 appointment attempts of a max 2 appointments. assert 3 == 2 |
MEDIUM | 44.51s |
| Appointments should be blocked after reaching max load |
browser_name: chromium _pytest_bdd_example: {'numberOfPatients': '3', 'maxAppointments': '2'} service_name: Outpatient Department |
An appointment service should not allow a new appointment after going past the max number | FAIL |
6.4
Recorded Errors assert successful == maxAppointments, (f"{successful} successful appointments of {numberOfPatients} appointment attempts of a max {maxAppointments} appointments.") AssertionError: 3 successful appointments of 3 appointment attempts of a max 2 appointments. assert 3 == 2 |
MEDIUM | 37.95s |
| Appointments should be blocked after reaching max load |
browser_name: chromium _pytest_bdd_example: {'numberOfPatients': '3', 'maxAppointments': '2'} service_name: Rehabilitation service |
An appointment service should not allow a new appointment after going past the max number | FAIL |
6.4
Recorded Errors assert successful == maxAppointments, (f"{successful} successful appointments of {numberOfPatients} appointment attempts of a max {maxAppointments} appointments.") AssertionError: 3 successful appointments of 3 appointment attempts of a max 2 appointments. assert 3 == 2 |
MEDIUM | 37.87s |
| Test Name | Parameters | Description | Status | CVSS Score (Baseline) | Severity | Duration |
|---|---|---|---|---|---|---|
| Integer overflow of quantity on billing page |
browser_name: chromium quantity: 1 billing_category: Antenatal care |
On the quantity field of the billing page, a large integer should not cause an integer overflow or wraparound | FAIL |
10.0
Recorded Errors expect(add_bill_items).to_be_visible() AssertionError: Locator expected to be visible Actual value: None Error: element(s) not found Call log: - Expect "to_be_visible" with timeout 5000ms - waiting for get_by_text("Add bill items", exact=True) |
CRITICAL | 21.69s |
| Integer overflow of quantity on billing page |
browser_name: chromium quantity: 1 billing_category: Orthopedic Service |
On the quantity field of the billing page, a large integer should not cause an integer overflow or wraparound | FAIL |
10.0
Recorded Errors expect(add_bill_items).to_be_visible() AssertionError: Locator expected to be visible Actual value: None Error: element(s) not found Call log: - Expect "to_be_visible" with timeout 5000ms - waiting for get_by_text("Add bill items", exact=True) |
CRITICAL | 20.58s |
| Integer overflow of quantity on billing page |
browser_name: chromium quantity: 1 billing_category: Nutrition counseling |
On the quantity field of the billing page, a large integer should not cause an integer overflow or wraparound | FAIL |
10.0
Recorded Errors expect(add_bill_items).to_be_visible() AssertionError: Locator expected to be visible Actual value: None Error: element(s) not found Call log: - Expect "to_be_visible" with timeout 5000ms - waiting for get_by_text("Add bill items", exact=True) |
CRITICAL | 20.6s |
| Integer overflow of quantity on billing page |
browser_name: chromium quantity: 1 billing_category: OPD consultation |
On the quantity field of the billing page, a large integer should not cause an integer overflow or wraparound | FAIL |
10.0
Recorded Errors expect(add_bill_items).to_be_visible() AssertionError: Locator expected to be visible Actual value: None Error: element(s) not found Call log: - Expect "to_be_visible" with timeout 5000ms - waiting for get_by_text("Add bill items", exact=True) |
CRITICAL | 20.55s |
| Integer overflow of quantity on billing page |
browser_name: chromium quantity: 1000000 billing_category: Antenatal care |
On the quantity field of the billing page, a large integer should not cause an integer overflow or wraparound | FAIL |
10.0
Recorded Errors expect(add_bill_items).to_be_visible() AssertionError: Locator expected to be visible Actual value: None Error: element(s) not found Call log: - Expect "to_be_visible" with timeout 5000ms - waiting for get_by_text("Add bill items", exact=True) |
CRITICAL | 20.37s |
| Integer overflow of quantity on billing page |
browser_name: chromium quantity: 1000000 billing_category: Orthopedic Service |
On the quantity field of the billing page, a large integer should not cause an integer overflow or wraparound | FAIL |
10.0
Recorded Errors expect(add_bill_items).to_be_visible() AssertionError: Locator expected to be visible Actual value: None Error: element(s) not found Call log: - Expect "to_be_visible" with timeout 5000ms - waiting for get_by_text("Add bill items", exact=True) |
CRITICAL | 20.65s |
| Integer overflow of quantity on billing page |
browser_name: chromium quantity: 1000000 billing_category: Nutrition counseling |
On the quantity field of the billing page, a large integer should not cause an integer overflow or wraparound | FAIL |
10.0
Recorded Errors expect(add_bill_items).to_be_visible() AssertionError: Locator expected to be visible Actual value: None Error: element(s) not found Call log: - Expect "to_be_visible" with timeout 5000ms - waiting for get_by_text("Add bill items", exact=True) |
CRITICAL | 20.43s |
| Integer overflow of quantity on billing page |
browser_name: chromium quantity: 1000000 billing_category: OPD consultation |
On the quantity field of the billing page, a large integer should not cause an integer overflow or wraparound | FAIL |
10.0
Recorded Errors expect(add_bill_items).to_be_visible() AssertionError: Locator expected to be visible Actual value: None Error: element(s) not found Call log: - Expect "to_be_visible" with timeout 5000ms - waiting for get_by_text("Add bill items", exact=True) |
CRITICAL | 20.42s |
| Integer overflow of quantity on billing page |
browser_name: chromium quantity: 2147483647 billing_category: Antenatal care |
On the quantity field of the billing page, a large integer should not cause an integer overflow or wraparound | FAIL |
10.0
Recorded Errors expect(add_bill_items).to_be_visible() AssertionError: Locator expected to be visible Actual value: None Error: element(s) not found Call log: - Expect "to_be_visible" with timeout 5000ms - waiting for get_by_text("Add bill items", exact=True) |
CRITICAL | 20.48s |
| Integer overflow of quantity on billing page |
browser_name: chromium quantity: 2147483647 billing_category: Orthopedic Service |
On the quantity field of the billing page, a large integer should not cause an integer overflow or wraparound | FAIL |
10.0
Recorded Errors expect(add_bill_items).to_be_visible() AssertionError: Locator expected to be visible Actual value: None Error: element(s) not found Call log: - Expect "to_be_visible" with timeout 5000ms - waiting for get_by_text("Add bill items", exact=True) |
CRITICAL | 20.68s |
| Integer overflow of quantity on billing page |
browser_name: chromium quantity: 2147483647 billing_category: Nutrition counseling |
On the quantity field of the billing page, a large integer should not cause an integer overflow or wraparound | FAIL |
10.0
Recorded Errors expect(add_bill_items).to_be_visible() AssertionError: Locator expected to be visible Actual value: None Error: element(s) not found Call log: - Expect "to_be_visible" with timeout 5000ms - waiting for get_by_text("Add bill items", exact=True) |
CRITICAL | 20.46s |
| Integer overflow of quantity on billing page |
browser_name: chromium quantity: 2147483647 billing_category: OPD consultation |
On the quantity field of the billing page, a large integer should not cause an integer overflow or wraparound | FAIL |
10.0
Recorded Errors expect(add_bill_items).to_be_visible() AssertionError: Locator expected to be visible Actual value: None Error: element(s) not found Call log: - Expect "to_be_visible" with timeout 5000ms - waiting for get_by_text("Add bill items", exact=True) |
CRITICAL | 20.5s |
| Integer overflow of quantity on billing page |
browser_name: chromium quantity: 2147483648 billing_category: Antenatal care |
On the quantity field of the billing page, a large integer should not cause an integer overflow or wraparound | FAIL |
10.0
Recorded Errors expect(add_bill_items).to_be_visible() AssertionError: Locator expected to be visible Actual value: None Error: element(s) not found Call log: - Expect "to_be_visible" with timeout 5000ms - waiting for get_by_text("Add bill items", exact=True) |
CRITICAL | 20.45s |
| Integer overflow of quantity on billing page |
browser_name: chromium quantity: 2147483648 billing_category: Orthopedic Service |
On the quantity field of the billing page, a large integer should not cause an integer overflow or wraparound | FAIL |
10.0
Recorded Errors expect(add_bill_items).to_be_visible() AssertionError: Locator expected to be visible Actual value: None Error: element(s) not found Call log: - Expect "to_be_visible" with timeout 5000ms - waiting for get_by_text("Add bill items", exact=True) |
CRITICAL | 20.43s |
| Integer overflow of quantity on billing page |
browser_name: chromium quantity: 2147483648 billing_category: Nutrition counseling |
On the quantity field of the billing page, a large integer should not cause an integer overflow or wraparound | FAIL |
10.0
Recorded Errors expect(add_bill_items).to_be_visible() AssertionError: Locator expected to be visible Actual value: None Error: element(s) not found Call log: - Expect "to_be_visible" with timeout 5000ms - waiting for get_by_text("Add bill items", exact=True) |
CRITICAL | 20.58s |
| Integer overflow of quantity on billing page |
browser_name: chromium quantity: 2147483648 billing_category: OPD consultation |
On the quantity field of the billing page, a large integer should not cause an integer overflow or wraparound | FAIL |
10.0
Recorded Errors expect(add_bill_items).to_be_visible() AssertionError: Locator expected to be visible Actual value: None Error: element(s) not found Call log: - Expect "to_be_visible" with timeout 5000ms - waiting for get_by_text("Add bill items", exact=True) |
CRITICAL | 20.47s |
| Integer overflow of quantity on billing page |
browser_name: chromium quantity: 4294967294 billing_category: Antenatal care |
On the quantity field of the billing page, a large integer should not cause an integer overflow or wraparound | FAIL |
10.0
Recorded Errors expect(add_bill_items).to_be_visible() AssertionError: Locator expected to be visible Actual value: None Error: element(s) not found Call log: - Expect "to_be_visible" with timeout 5000ms - waiting for get_by_text("Add bill items", exact=True) |
CRITICAL | 20.55s |
| Integer overflow of quantity on billing page |
browser_name: chromium quantity: 4294967294 billing_category: Orthopedic Service |
On the quantity field of the billing page, a large integer should not cause an integer overflow or wraparound | FAIL |
10.0
Recorded Errors expect(add_bill_items).to_be_visible() AssertionError: Locator expected to be visible Actual value: None Error: element(s) not found Call log: - Expect "to_be_visible" with timeout 5000ms - waiting for get_by_text("Add bill items", exact=True) |
CRITICAL | 20.52s |
| Integer overflow of quantity on billing page |
browser_name: chromium quantity: 4294967294 billing_category: Nutrition counseling |
On the quantity field of the billing page, a large integer should not cause an integer overflow or wraparound | FAIL |
10.0
Recorded Errors expect(add_bill_items).to_be_visible() AssertionError: Locator expected to be visible Actual value: None Error: element(s) not found Call log: - Expect "to_be_visible" with timeout 5000ms - waiting for get_by_text("Add bill items", exact=True) |
CRITICAL | 20.63s |
| Integer overflow of quantity on billing page |
browser_name: chromium quantity: 4294967294 billing_category: OPD consultation |
On the quantity field of the billing page, a large integer should not cause an integer overflow or wraparound | FAIL |
10.0
Recorded Errors expect(add_bill_items).to_be_visible() AssertionError: Locator expected to be visible Actual value: None Error: element(s) not found Call log: - Expect "to_be_visible" with timeout 5000ms - waiting for get_by_text("Add bill items", exact=True) |
CRITICAL | 20.45s |
| Test Name | Parameters | Description | Status | CVSS Score (Baseline) | Severity | Duration |
|---|---|---|---|---|---|---|
| SQL injection on first name field of edit patient page |
browser_name: chromium _pytest_bdd_example: {'personNameSQLString': 'first name'} testString: hello;CREATE TABLE testingTable (testfield datetime PRIMARY KEY); |
A parameterized test to try several potential SQL injection strings that target the person_name table of the OpenMRS O3 data model. | PASS | 9.2 | CRITICAL | 25.12s |
| SQL injection on middle name field of edit patient page |
browser_name: chromium _pytest_bdd_example: {'personNameSQLString': 'middle name'} testString: hello;CREATE TABLE testingTable (testfield datetime PRIMARY KEY); |
A parameterized test to try several potential SQL injection strings that target the person_name table of the OpenMRS O3 data model. | PASS | 9.2 | CRITICAL | 23.85s |
| SQL injection on family name field of edit patient page |
browser_name: chromium _pytest_bdd_example: {'personNameSQLString': 'family name'} testString: hello;CREATE TABLE testingTable (testfield datetime PRIMARY KEY); |
A parameterized test to try several potential SQL injection strings that target the person_name table of the OpenMRS O3 data model. | PASS | 9.2 | CRITICAL | 17.39s |
| Test Name | Parameters | Description | Status | CVSS Score (Baseline) | Severity | Duration |
|---|---|---|---|---|---|---|
| XSS injection on first name field of edit patient page, parameterized |
browser_name: chromium _pytest_bdd_example: {'scenarioString': 'first name'} testString: <img src/onerror=prompt('XSS') |
A parameterized test to try several potential XSS injection strings on the |
PASS | 4.4 | MEDIUM | 20.88s |
| Test Name | Parameters | Description | Status | CVSS Score (Baseline) | Severity | Duration |
|---|---|---|---|---|---|---|
| XSS injection on first name field of edit patient page, parameterized |
browser_name: chromium _pytest_bdd_example: {'scenarioString': 'first name'} testString: <img src=x onerror=prompt("XSS")> |
A parameterized test to try several potential XSS injection strings on the |
FAIL |
4.4
Recorded Errors raise rewrite_error(error, f"{parsed_st['apiName']}: {error}") from None playwright._impl._errors.Error: Locator.click: Error: strict mode violation: get_by_text("Actions") resolved to 2 elements: 1) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2a:\"]") 2) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2f:\"]") Call log: - waiting for get_by_text("Actions") |
MEDIUM | 7.63s |
| XSS injection on first name field of edit patient page, parameterized |
browser_name: chromium _pytest_bdd_example: {'scenarioString': 'first name'} testString: <svg onload=prompt("XSS")> |
A parameterized test to try several potential XSS injection strings on the |
FAIL |
4.4
Recorded Errors raise rewrite_error(error, f"{parsed_st['apiName']}: {error}") from None playwright._impl._errors.Error: Locator.click: Error: strict mode violation: get_by_text("Actions") resolved to 2 elements: 1) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2a:\"]") 2) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2f:\"]") Call log: - waiting for get_by_text("Actions") |
MEDIUM | 7.62s |
| XSS injection on middle name field of edit patient page, parameterized |
browser_name: chromium _pytest_bdd_example: {'scenarioString': 'middle name'} testString: <img src/onerror=prompt('XSS') |
A parameterized test to try several potential XSS injection strings on the |
FAIL |
4.4
Recorded Errors raise rewrite_error(error, f"{parsed_st['apiName']}: {error}") from None playwright._impl._errors.Error: Locator.click: Error: strict mode violation: get_by_text("Actions") resolved to 2 elements: 1) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2a:\"]") 2) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2f:\"]") Call log: - waiting for get_by_text("Actions") |
MEDIUM | 7.61s |
| XSS injection on middle name field of edit patient page, parameterized |
browser_name: chromium _pytest_bdd_example: {'scenarioString': 'middle name'} testString: <img src=x onerror=prompt("XSS")> |
A parameterized test to try several potential XSS injection strings on the |
FAIL |
4.4
Recorded Errors raise rewrite_error(error, f"{parsed_st['apiName']}: {error}") from None playwright._impl._errors.Error: Locator.click: Error: strict mode violation: get_by_text("Actions") resolved to 2 elements: 1) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2a:\"]") 2) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2f:\"]") Call log: - waiting for get_by_text("Actions") |
MEDIUM | 7.64s |
| XSS injection on middle name field of edit patient page, parameterized |
browser_name: chromium _pytest_bdd_example: {'scenarioString': 'middle name'} testString: <svg onload=prompt("XSS")> |
A parameterized test to try several potential XSS injection strings on the |
FAIL |
4.4
Recorded Errors raise rewrite_error(error, f"{parsed_st['apiName']}: {error}") from None playwright._impl._errors.Error: Locator.click: Error: strict mode violation: get_by_text("Actions") resolved to 2 elements: 1) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2a:\"]") 2) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2f:\"]") Call log: - waiting for get_by_text("Actions") |
MEDIUM | 7.65s |
| XSS injection on family name field of edit patient page, parameterized |
browser_name: chromium _pytest_bdd_example: {'scenarioString': 'family name'} testString: <img src/onerror=prompt('XSS') |
A parameterized test to try several potential XSS injection strings on the |
FAIL |
4.4
Recorded Errors raise rewrite_error(error, f"{parsed_st['apiName']}: {error}") from None playwright._impl._errors.Error: Locator.click: Error: strict mode violation: get_by_text("Actions") resolved to 2 elements: 1) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2a:\"]") 2) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2f:\"]") Call log: - waiting for get_by_text("Actions") |
MEDIUM | 7.73s |
| XSS injection on family name field of edit patient page, parameterized |
browser_name: chromium _pytest_bdd_example: {'scenarioString': 'family name'} testString: <img src=x onerror=prompt("XSS")> |
A parameterized test to try several potential XSS injection strings on the |
FAIL |
4.4
Recorded Errors raise rewrite_error(error, f"{parsed_st['apiName']}: {error}") from None playwright._impl._errors.Error: Locator.click: Error: strict mode violation: get_by_text("Actions") resolved to 2 elements: 1) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2a:\"]") 2) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2f:\"]") Call log: - waiting for get_by_text("Actions") |
MEDIUM | 7.71s |
| XSS injection on family name field of edit patient page, parameterized |
browser_name: chromium _pytest_bdd_example: {'scenarioString': 'family name'} testString: <svg onload=prompt("XSS")> |
A parameterized test to try several potential XSS injection strings on the |
FAIL |
4.4
Recorded Errors raise rewrite_error(error, f"{parsed_st['apiName']}: {error}") from None playwright._impl._errors.Error: Locator.click: Error: strict mode violation: get_by_text("Actions") resolved to 2 elements: 1) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2a:\"]") 2) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2f:\"]") Call log: - waiting for get_by_text("Actions") |
MEDIUM | 7.61s |
| XSS injection on address 1 field of edit patient page, parameterized |
browser_name: chromium _pytest_bdd_example: {'scenarioString': 'address 1'} testString: <img src/onerror=prompt('XSS') |
A parameterized test to try several potential XSS injection strings on the |
FAIL |
4.4
Recorded Errors raise rewrite_error(error, f"{parsed_st['apiName']}: {error}") from None playwright._impl._errors.Error: Locator.click: Error: strict mode violation: get_by_text("Actions") resolved to 2 elements: 1) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2a:\"]") 2) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2f:\"]") Call log: - waiting for get_by_text("Actions") |
MEDIUM | 7.87s |
| XSS injection on address 1 field of edit patient page, parameterized |
browser_name: chromium _pytest_bdd_example: {'scenarioString': 'address 1'} testString: <img src=x onerror=prompt("XSS")> |
A parameterized test to try several potential XSS injection strings on the |
FAIL |
4.4
Recorded Errors raise rewrite_error(error, f"{parsed_st['apiName']}: {error}") from None playwright._impl._errors.Error: Locator.click: Error: strict mode violation: get_by_text("Actions") resolved to 2 elements: 1) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2a:\"]") 2) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2f:\"]") Call log: - waiting for get_by_text("Actions") |
MEDIUM | 7.72s |
| XSS injection on address 1 field of edit patient page, parameterized |
browser_name: chromium _pytest_bdd_example: {'scenarioString': 'address 1'} testString: <svg onload=prompt("XSS")> |
A parameterized test to try several potential XSS injection strings on the |
FAIL |
4.4
Recorded Errors raise rewrite_error(error, f"{parsed_st['apiName']}: {error}") from None playwright._impl._errors.Error: Locator.click: Error: strict mode violation: get_by_text("Actions") resolved to 2 elements: 1) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2a:\"]") 2) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2f:\"]") Call log: - waiting for get_by_text("Actions") |
MEDIUM | 7.52s |
| XSS injection on address 2 field of edit patient page, parameterized |
browser_name: chromium _pytest_bdd_example: {'scenarioString': 'address 2'} testString: <img src/onerror=prompt('XSS') |
A parameterized test to try several potential XSS injection strings on the |
FAIL |
4.4
Recorded Errors raise rewrite_error(error, f"{parsed_st['apiName']}: {error}") from None playwright._impl._errors.Error: Locator.click: Error: strict mode violation: get_by_text("Actions") resolved to 2 elements: 1) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2a:\"]") 2) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2f:\"]") Call log: - waiting for get_by_text("Actions") |
MEDIUM | 7.67s |
| XSS injection on address 2 field of edit patient page, parameterized |
browser_name: chromium _pytest_bdd_example: {'scenarioString': 'address 2'} testString: <img src=x onerror=prompt("XSS")> |
A parameterized test to try several potential XSS injection strings on the |
FAIL |
4.4
Recorded Errors raise rewrite_error(error, f"{parsed_st['apiName']}: {error}") from None playwright._impl._errors.Error: Locator.click: Error: strict mode violation: get_by_text("Actions") resolved to 2 elements: 1) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2a:\"]") 2) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2f:\"]") Call log: - waiting for get_by_text("Actions") |
MEDIUM | 7.81s |
| XSS injection on address 2 field of edit patient page, parameterized |
browser_name: chromium _pytest_bdd_example: {'scenarioString': 'address 2'} testString: <svg onload=prompt("XSS")> |
A parameterized test to try several potential XSS injection strings on the |
FAIL |
4.4
Recorded Errors raise rewrite_error(error, f"{parsed_st['apiName']}: {error}") from None playwright._impl._errors.Error: Locator.click: Error: strict mode violation: get_by_text("Actions") resolved to 2 elements: 1) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2a:\"]") 2) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2f:\"]") Call log: - waiting for get_by_text("Actions") |
MEDIUM | 7.57s |
| XSS injection on city field of edit patient page, parameterized |
browser_name: chromium _pytest_bdd_example: {'scenarioString': 'city'} testString: <img src/onerror=prompt('XSS') |
A parameterized test to try several potential XSS injection strings on the |
FAIL |
4.4
Recorded Errors raise rewrite_error(error, f"{parsed_st['apiName']}: {error}") from None playwright._impl._errors.Error: Locator.click: Error: strict mode violation: get_by_text("Actions") resolved to 2 elements: 1) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2a:\"]") 2) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2f:\"]") Call log: - waiting for get_by_text("Actions") |
MEDIUM | 7.79s |
| XSS injection on city field of edit patient page, parameterized |
browser_name: chromium _pytest_bdd_example: {'scenarioString': 'city'} testString: <img src=x onerror=prompt("XSS")> |
A parameterized test to try several potential XSS injection strings on the |
FAIL |
4.4
Recorded Errors raise rewrite_error(error, f"{parsed_st['apiName']}: {error}") from None playwright._impl._errors.Error: Locator.click: Error: strict mode violation: get_by_text("Actions") resolved to 2 elements: 1) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2a:\"]") 2) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2f:\"]") Call log: - waiting for get_by_text("Actions") |
MEDIUM | 7.78s |
| XSS injection on city field of edit patient page, parameterized |
browser_name: chromium _pytest_bdd_example: {'scenarioString': 'city'} testString: <svg onload=prompt("XSS")> |
A parameterized test to try several potential XSS injection strings on the |
FAIL |
4.4
Recorded Errors raise rewrite_error(error, f"{parsed_st['apiName']}: {error}") from None playwright._impl._errors.Error: Locator.click: Error: strict mode violation: get_by_text("Actions") resolved to 2 elements: 1) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2a:\"]") 2) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2f:\"]") Call log: - waiting for get_by_text("Actions") |
MEDIUM | 7.68s |
| XSS injection on state field of edit patient page, parameterized |
browser_name: chromium _pytest_bdd_example: {'scenarioString': 'state'} testString: <img src/onerror=prompt('XSS') |
A parameterized test to try several potential XSS injection strings on the |
FAIL |
4.4
Recorded Errors raise rewrite_error(error, f"{parsed_st['apiName']}: {error}") from None playwright._impl._errors.Error: Locator.click: Error: strict mode violation: get_by_text("Actions") resolved to 2 elements: 1) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2a:\"]") 2) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2f:\"]") Call log: - waiting for get_by_text("Actions") |
MEDIUM | 7.62s |
| XSS injection on state field of edit patient page, parameterized |
browser_name: chromium _pytest_bdd_example: {'scenarioString': 'state'} testString: <img src=x onerror=prompt("XSS")> |
A parameterized test to try several potential XSS injection strings on the |
FAIL |
4.4
Recorded Errors raise rewrite_error(error, f"{parsed_st['apiName']}: {error}") from None playwright._impl._errors.Error: Locator.click: Error: strict mode violation: get_by_text("Actions") resolved to 2 elements: 1) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2a:\"]") 2) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2f:\"]") Call log: - waiting for get_by_text("Actions") |
MEDIUM | 7.78s |
| Valid input for first name field of edit patient page is not blocked by filters |
_pytest_bdd_example: {'scenarioString': 'first name'} |
A parameterized test to try valid input on the |
FAIL |
8.6
Recorded Errors raise rewrite_error(error, f"{parsed_st['apiName']}: {error}") from None playwright._impl._errors.Error: Locator.click: Error: strict mode violation: get_by_text("Actions") resolved to 2 elements: 1) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2a:\"]") 2) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2f:\"]") Call log: - waiting for get_by_text("Actions") |
HIGH | 7.6s |
| Valid input for middle name field of edit patient page is not blocked by filters |
_pytest_bdd_example: {'scenarioString': 'middle name'} |
A parameterized test to try valid input on the |
FAIL |
8.6
Recorded Errors raise rewrite_error(error, f"{parsed_st['apiName']}: {error}") from None playwright._impl._errors.Error: Locator.click: Error: strict mode violation: get_by_text("Actions") resolved to 2 elements: 1) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2a:\"]") 2) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2f:\"]") Call log: - waiting for get_by_text("Actions") |
HIGH | 7.65s |
| Valid input for family name field of edit patient page is not blocked by filters |
_pytest_bdd_example: {'scenarioString': 'family name'} |
A parameterized test to try valid input on the |
FAIL |
8.6
Recorded Errors raise rewrite_error(error, f"{parsed_st['apiName']}: {error}") from None playwright._impl._errors.Error: Locator.click: Error: strict mode violation: get_by_text("Actions") resolved to 2 elements: 1) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2a:\"]") 2) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2f:\"]") Call log: - waiting for get_by_text("Actions") |
HIGH | 7.65s |
| Valid input for address 1 field of edit patient page is not blocked by filters |
_pytest_bdd_example: {'scenarioString': 'address 1'} |
A parameterized test to try valid input on the |
FAIL |
8.6
Recorded Errors raise rewrite_error(error, f"{parsed_st['apiName']}: {error}") from None playwright._impl._errors.Error: Locator.click: Error: strict mode violation: get_by_text("Actions") resolved to 2 elements: 1) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2a:\"]") 2) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2f:\"]") Call log: - waiting for get_by_text("Actions") |
HIGH | 7.64s |
| Valid input for address 2 field of edit patient page is not blocked by filters |
_pytest_bdd_example: {'scenarioString': 'address 2'} |
A parameterized test to try valid input on the |
FAIL |
8.6
Recorded Errors raise rewrite_error(error, f"{parsed_st['apiName']}: {error}") from None playwright._impl._errors.Error: Locator.click: Error: strict mode violation: get_by_text("Actions") resolved to 2 elements: 1) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2a:\"]") 2) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2f:\"]") Call log: - waiting for get_by_text("Actions") |
HIGH | 7.87s |
| Valid input for city field of edit patient page is not blocked by filters |
_pytest_bdd_example: {'scenarioString': 'city'} |
A parameterized test to try valid input on the |
FAIL |
8.6
Recorded Errors raise rewrite_error(error, f"{parsed_st['apiName']}: {error}") from None playwright._impl._errors.Error: Locator.click: Error: strict mode violation: get_by_text("Actions") resolved to 2 elements: 1) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2a:\"]") 2) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2f:\"]") Call log: - waiting for get_by_text("Actions") |
HIGH | 7.89s |
| Valid input for state field of edit patient page is not blocked by filters |
_pytest_bdd_example: {'scenarioString': 'state'} |
A parameterized test to try valid input on the |
FAIL |
8.6
Recorded Errors raise rewrite_error(error, f"{parsed_st['apiName']}: {error}") from None playwright._impl._errors.Error: Locator.click: Error: strict mode violation: get_by_text("Actions") resolved to 2 elements: 1) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2a:\"]") 2) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2f:\"]") Call log: - waiting for get_by_text("Actions") |
HIGH | 7.85s |
| Valid input for country field of edit patient page is not blocked by filters |
_pytest_bdd_example: {'scenarioString': 'country'} |
A parameterized test to try valid input on the |
FAIL |
8.6
Recorded Errors raise rewrite_error(error, f"{parsed_st['apiName']}: {error}") from None playwright._impl._errors.Error: Locator.click: Error: strict mode violation: get_by_text("Actions") resolved to 2 elements: 1) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2a:\"]") 2) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2f:\"]") Call log: - waiting for get_by_text("Actions") |
HIGH | 7.6s |
| Valid input for postal code field of edit patient page is not blocked by filters |
_pytest_bdd_example: {'scenarioString': 'postal code'} |
A parameterized test to try valid input on the |
FAIL |
8.6
Recorded Errors raise rewrite_error(error, f"{parsed_st['apiName']}: {error}") from None playwright._impl._errors.Error: Locator.click: Error: strict mode violation: get_by_text("Actions") resolved to 2 elements: 1) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2a:\"]") 2) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2f:\"]") Call log: - waiting for get_by_text("Actions") |
HIGH | 7.61s |
| Valid input for phone number field of edit patient page is not blocked by filters |
_pytest_bdd_example: {'scenarioString': 'phone number'} |
A parameterized test to try valid input on the |
FAIL |
8.6
Recorded Errors raise rewrite_error(error, f"{parsed_st['apiName']}: {error}") from None playwright._impl._errors.Error: Locator.click: Error: strict mode violation: get_by_text("Actions") resolved to 2 elements: 1) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2a:\"]") 2) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2f:\"]") Call log: - waiting for get_by_text("Actions") |
HIGH | 7.84s |
| XSS injection on state field of edit patient page, parameterized |
browser_name: chromium _pytest_bdd_example: {'scenarioString': 'state'} testString: <svg onload=prompt("XSS")> |
A parameterized test to try several potential XSS injection strings on the |
FAIL |
4.4
Recorded Errors raise rewrite_error(error, f"{parsed_st['apiName']}: {error}") from None playwright._impl._errors.Error: Locator.click: Error: strict mode violation: get_by_text("Actions") resolved to 2 elements: 1) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2a:\"]") 2) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2f:\"]") Call log: - waiting for get_by_text("Actions") |
MEDIUM | 7.55s |
| XSS injection on country field of edit patient page, parameterized |
browser_name: chromium _pytest_bdd_example: {'scenarioString': 'country'} testString: <img src/onerror=prompt('XSS') |
A parameterized test to try several potential XSS injection strings on the |
FAIL |
4.4
Recorded Errors raise rewrite_error(error, f"{parsed_st['apiName']}: {error}") from None playwright._impl._errors.Error: Locator.click: Error: strict mode violation: get_by_text("Actions") resolved to 2 elements: 1) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2a:\"]") 2) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2f:\"]") Call log: - waiting for get_by_text("Actions") |
MEDIUM | 7.69s |
| XSS injection on country field of edit patient page, parameterized |
browser_name: chromium _pytest_bdd_example: {'scenarioString': 'country'} testString: <img src=x onerror=prompt("XSS")> |
A parameterized test to try several potential XSS injection strings on the |
FAIL |
4.4
Recorded Errors raise rewrite_error(error, f"{parsed_st['apiName']}: {error}") from None playwright._impl._errors.Error: Locator.click: Error: strict mode violation: get_by_text("Actions") resolved to 2 elements: 1) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2a:\"]") 2) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2f:\"]") Call log: - waiting for get_by_text("Actions") |
MEDIUM | 7.63s |
| XSS injection on country field of edit patient page, parameterized |
browser_name: chromium _pytest_bdd_example: {'scenarioString': 'country'} testString: <svg onload=prompt("XSS")> |
A parameterized test to try several potential XSS injection strings on the |
FAIL |
4.4
Recorded Errors raise rewrite_error(error, f"{parsed_st['apiName']}: {error}") from None playwright._impl._errors.Error: Locator.click: Error: strict mode violation: get_by_text("Actions") resolved to 2 elements: 1) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2a:\"]") 2) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2f:\"]") Call log: - waiting for get_by_text("Actions") |
MEDIUM | 7.68s |
| XSS injection on postal code field of edit patient page, parameterized |
browser_name: chromium _pytest_bdd_example: {'scenarioString': 'postal code'} testString: <img src/onerror=prompt('XSS') |
A parameterized test to try several potential XSS injection strings on the |
FAIL |
4.4
Recorded Errors raise rewrite_error(error, f"{parsed_st['apiName']}: {error}") from None playwright._impl._errors.Error: Locator.click: Error: strict mode violation: get_by_text("Actions") resolved to 2 elements: 1) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2a:\"]") 2) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2f:\"]") Call log: - waiting for get_by_text("Actions") |
MEDIUM | 7.63s |
| XSS injection on postal code field of edit patient page, parameterized |
browser_name: chromium _pytest_bdd_example: {'scenarioString': 'postal code'} testString: <img src=x onerror=prompt("XSS")> |
A parameterized test to try several potential XSS injection strings on the |
FAIL |
4.4
Recorded Errors raise rewrite_error(error, f"{parsed_st['apiName']}: {error}") from None playwright._impl._errors.Error: Locator.click: Error: strict mode violation: get_by_text("Actions") resolved to 2 elements: 1) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2a:\"]") 2) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2f:\"]") Call log: - waiting for get_by_text("Actions") |
MEDIUM | 7.64s |
| XSS injection on postal code field of edit patient page, parameterized |
browser_name: chromium _pytest_bdd_example: {'scenarioString': 'postal code'} testString: <svg onload=prompt("XSS")> |
A parameterized test to try several potential XSS injection strings on the |
FAIL |
4.4
Recorded Errors raise rewrite_error(error, f"{parsed_st['apiName']}: {error}") from None playwright._impl._errors.Error: Locator.click: Error: strict mode violation: get_by_text("Actions") resolved to 2 elements: 1) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2a:\"]") 2) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2f:\"]") Call log: - waiting for get_by_text("Actions") |
MEDIUM | 7.57s |
| XSS injection on phone number field of edit patient page, parameterized |
browser_name: chromium _pytest_bdd_example: {'scenarioString': 'phone number'} testString: <img src/onerror=prompt('XSS') |
A parameterized test to try several potential XSS injection strings on the |
FAIL |
4.4
Recorded Errors raise rewrite_error(error, f"{parsed_st['apiName']}: {error}") from None playwright._impl._errors.Error: Locator.click: Error: strict mode violation: get_by_text("Actions") resolved to 2 elements: 1) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2b:\"]") 2) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2g:\"]") Call log: - waiting for get_by_text("Actions") |
MEDIUM | 7.65s |
| XSS injection on phone number field of edit patient page, parameterized |
browser_name: chromium _pytest_bdd_example: {'scenarioString': 'phone number'} testString: <img src=x onerror=prompt("XSS")> |
A parameterized test to try several potential XSS injection strings on the |
FAIL |
4.4
Recorded Errors raise rewrite_error(error, f"{parsed_st['apiName']}: {error}") from None playwright._impl._errors.Error: Locator.click: Error: strict mode violation: get_by_text("Actions") resolved to 2 elements: 1) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2a:\"]") 2) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2f:\"]") Call log: - waiting for get_by_text("Actions") |
MEDIUM | 7.58s |
| XSS injection on phone number field of edit patient page, parameterized |
browser_name: chromium _pytest_bdd_example: {'scenarioString': 'phone number'} testString: <svg onload=prompt("XSS")> |
A parameterized test to try several potential XSS injection strings on the |
FAIL |
4.4
Recorded Errors raise rewrite_error(error, f"{parsed_st['apiName']}: {error}") from None playwright._impl._errors.Error: Locator.click: Error: strict mode violation: get_by_text("Actions") resolved to 2 elements: 1) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2a:\"]") 2) <span class="Djpfq9UaeMJs3YDnN8NYKA==">Actions</span> aka locator("[id=\"patient-actions-menu-trigger-:r2f:\"]") Call log: - waiting for get_by_text("Actions") |
MEDIUM | 7.86s |
| Test Name | Parameters | Description | Status | CVSS Score (Baseline) | Severity | Duration |
|---|---|---|---|---|---|---|
| Web server version name and number should not be shown on 404 page |
N/A |
Apache Tomcat version number should not be shown when the default HTTP 404 Error page is shown | FAIL |
6.4
Recorded Errors assert page_data["is_text_on_page"] == False assert True == False |
MEDIUM | 1.08s |
| Test Name | Parameters | Description | Status | CVSS Score (Baseline) | Severity | Duration |
|---|---|---|---|---|---|---|
| Server logs should not show failed login attempts with correct credentials |
username: admin password: Admin123 |
A login attempt with a correct username and password should be not shown as a failed login attempt in the server logs | PASS | 6.4 | MEDIUM | 9.16s |
| Server logs should not show failed login attempts with correct credentials |
username: doctor password: Doctor123 |
A login attempt with a correct username and password should be not shown as a failed login attempt in the server logs | PASS | 6.4 | MEDIUM | 9.31s |
| Server logs should not show failed login attempts with correct credentials |
username: nurse password: Nurse123 |
A login attempt with a correct username and password should be not shown as a failed login attempt in the server logs | PASS | 6.4 | MEDIUM | 9.37s |
| Server logs should not show failed login attempts with correct credentials |
username: clerk password: Clerk123 |
A login attempt with a correct username and password should be not shown as a failed login attempt in the server logs | PASS | 6.4 | MEDIUM | 9.36s |
| Server logs should not show failed login attempts with correct credentials |
username: technician password: Technician123 |
A login attempt with a correct username and password should be not shown as a failed login attempt in the server logs | PASS | 6.4 | MEDIUM | 9.32s |
| Server logs should show failed login attempts |
username: admin |
A failed login attempt with an incorrect username or password should be shown in the logs | PASS | 6.4 | MEDIUM | 6.43s |
| Server logs should show failed login attempts |
username: doctor |
A failed login attempt with an incorrect username or password should be shown in the logs | PASS | 6.4 | MEDIUM | 6.51s |
| Server logs should show failed login attempts |
username: nurse |
A failed login attempt with an incorrect username or password should be shown in the logs | PASS | 6.4 | MEDIUM | 6.47s |
| Server logs should show failed login attempts |
username: clerk |
A failed login attempt with an incorrect username or password should be shown in the logs | PASS | 6.4 | MEDIUM | 6.48s |
| Server logs should show failed login attempts |
username: technician |
A failed login attempt with an incorrect username or password should be shown in the logs | PASS | 6.4 | MEDIUM | 6.47s |
| Server logs should show failed login attempts |
username: fakeusername1 |
A failed login attempt with an incorrect username or password should be shown in the logs | PASS | 6.4 | MEDIUM | 6.44s |
| Server logs should show failed login attempts |
username: fakeusername2 |
A failed login attempt with an incorrect username or password should be shown in the logs | PASS | 6.4 | MEDIUM | 6.45s |
| Test Name | Parameters | Description | Status | CVSS Score (Baseline) | Severity | Duration |
|---|---|---|---|---|---|---|
| Security header attribute 'unsafe-hash' should not be used for default-src directive on login page |
_pytest_bdd_example: {'attribute': "'unsafe-hash'"} |
The content-security-policy header should not have unsafe- attributes for the default-src directive | PASS | 8.2 | HIGH | 0.38s |
| Security header directive default-src should be set to 'none' or 'self' on login page |
_pytest_bdd_example: {'directive': 'default-src', 'fallback': 'True'} |
Directives should be set to 'none' or 'self' on login page if it exists and does not fall back to default-src | PASS | 8.2 | HIGH | 0.38s |
| Security header directive script-src should be set to 'none' or 'self' on login page |
_pytest_bdd_example: {'directive': 'script-src', 'fallback': 'True'} |
Directives should be set to 'none' or 'self' on login page if it exists and does not fall back to default-src | PASS | 8.2 | HIGH | 0.38s |
| Security header directive style-src should be set to 'none' or 'self' on login page |
_pytest_bdd_example: {'directive': 'style-src', 'fallback': 'True'} |
Directives should be set to 'none' or 'self' on login page if it exists and does not fall back to default-src | PASS | 8.2 | HIGH | 0.38s |
| Security header directive connect-src should be set to 'none' or 'self' on login page |
_pytest_bdd_example: {'directive': 'connect-src', 'fallback': 'True'} |
Directives should be set to 'none' or 'self' on login page if it exists and does not fall back to default-src | PASS | 8.2 | HIGH | 0.39s |
| Security header directive media-src should be set to 'none' or 'self' on login page |
_pytest_bdd_example: {'directive': 'media-src', 'fallback': 'True'} |
Directives should be set to 'none' or 'self' on login page if it exists and does not fall back to default-src | PASS | 8.2 | HIGH | 0.38s |
| Security header directive object-src should be set to 'none' or 'self' on login page |
_pytest_bdd_example: {'directive': 'object-src', 'fallback': 'True'} |
Directives should be set to 'none' or 'self' on login page if it exists and does not fall back to default-src | PASS | 8.2 | HIGH | 0.38s |
| Security header directive frame-src should be set to 'none' or 'self' on login page |
_pytest_bdd_example: {'directive': 'frame-src', 'fallback': 'True'} |
Directives should be set to 'none' or 'self' on login page if it exists and does not fall back to default-src | PASS | 8.2 | HIGH | 0.38s |
| Security header directive worker-src should be set to 'none' or 'self' on login page |
_pytest_bdd_example: {'directive': 'worker-src', 'fallback': 'True'} |
Directives should be set to 'none' or 'self' on login page if it exists and does not fall back to default-src | PASS | 8.2 | HIGH | 0.38s |
| Security header directive manifest-src should be set to 'none' or 'self' on login page |
_pytest_bdd_example: {'directive': 'manifest-src', 'fallback': 'True'} |
Directives should be set to 'none' or 'self' on login page if it exists and does not fall back to default-src | PASS | 8.2 | HIGH | 0.37s |
| Security header directive child-src should be set to 'none' or 'self' on login page |
_pytest_bdd_example: {'directive': 'child-src', 'fallback': 'True'} |
Directives should be set to 'none' or 'self' on login page if it exists and does not fall back to default-src | PASS | 8.2 | HIGH | 0.4s |
| Security header directive font-src should be set to 'none' or 'self' on login page |
_pytest_bdd_example: {'directive': 'font-src', 'fallback': 'True'} |
Directives should be set to 'none' or 'self' on login page if it exists and does not fall back to default-src | PASS | 8.2 | HIGH | 0.39s |
| Security header directive frame-ancestors should be set to 'none' or 'self' on login page |
_pytest_bdd_example: {'directive': 'frame-ancestors', 'fallback': 'False'} |
Directives should be set to 'none' or 'self' on login page if it exists and does not fall back to default-src | PASS | 8.2 | HIGH | 0.38s |
| Security header directive base-uri should be set to 'none' or 'self' on login page |
_pytest_bdd_example: {'directive': 'base-uri', 'fallback': 'False'} |
Directives should be set to 'none' or 'self' on login page if it exists and does not fall back to default-src | PASS | 8.2 | HIGH | 0.38s |
| Security header directive default-src should not be set to * or http: on login page |
_pytest_bdd_example: {'directive': 'default-src', 'fallback': 'True'} |
Directives should not be set to * or http: on login page if it exists and falls back to default-src | PASS | 8.2 | HIGH | 0.38s |
| Security header directive script-src should not be set to * or http: on login page |
_pytest_bdd_example: {'directive': 'script-src', 'fallback': 'True'} |
Directives should not be set to * or http: on login page if it exists and falls back to default-src | PASS | 8.2 | HIGH | 0.39s |
| Security header directive style-src should not be set to * or http: on login page |
_pytest_bdd_example: {'directive': 'style-src', 'fallback': 'True'} |
Directives should not be set to * or http: on login page if it exists and falls back to default-src | PASS | 8.2 | HIGH | 0.38s |
| Security header directive connect-src should not be set to * or http: on login page |
_pytest_bdd_example: {'directive': 'connect-src', 'fallback': 'True'} |
Directives should not be set to * or http: on login page if it exists and falls back to default-src | PASS | 8.2 | HIGH | 0.38s |
| Security header directive media-src should not be set to * or http: on login page |
_pytest_bdd_example: {'directive': 'media-src', 'fallback': 'True'} |
Directives should not be set to * or http: on login page if it exists and falls back to default-src | PASS | 8.2 | HIGH | 0.39s |
| Security header directive object-src should not be set to * or http: on login page |
_pytest_bdd_example: {'directive': 'object-src', 'fallback': 'True'} |
Directives should not be set to * or http: on login page if it exists and falls back to default-src | PASS | 8.2 | HIGH | 0.38s |
| Security header directive frame-src should not be set to * or http: on login page |
_pytest_bdd_example: {'directive': 'frame-src', 'fallback': 'True'} |
Directives should not be set to * or http: on login page if it exists and falls back to default-src | PASS | 8.2 | HIGH | 0.38s |
| Security header directive worker-src should not be set to * or http: on login page |
_pytest_bdd_example: {'directive': 'worker-src', 'fallback': 'True'} |
Directives should not be set to * or http: on login page if it exists and falls back to default-src | PASS | 8.2 | HIGH | 0.38s |
| Security header directive manifest-src should not be set to * or http: on login page |
_pytest_bdd_example: {'directive': 'manifest-src', 'fallback': 'True'} |
Directives should not be set to * or http: on login page if it exists and falls back to default-src | PASS | 8.2 | HIGH | 0.38s |
| Security header directive child-src should not be set to * or http: on login page |
_pytest_bdd_example: {'directive': 'child-src', 'fallback': 'True'} |
Directives should not be set to * or http: on login page if it exists and falls back to default-src | PASS | 8.2 | HIGH | 0.38s |
| Security header directive font-src should not be set to * or http: on login page |
_pytest_bdd_example: {'directive': 'font-src', 'fallback': 'True'} |
Directives should not be set to * or http: on login page if it exists and falls back to default-src | PASS | 8.2 | HIGH | 0.38s |
| Security header directive frame-ancestors should not be set to * or http: on login page |
_pytest_bdd_example: {'directive': 'frame-ancestors', 'fallback': 'False'} |
Directives should not be set to * or http: on login page if it exists and falls back to default-src | PASS | 8.2 | HIGH | 0.39s |
| Security header directive base-uri should not be set to * or http: on login page |
_pytest_bdd_example: {'directive': 'base-uri', 'fallback': 'False'} |
Directives should not be set to * or http: on login page if it exists and falls back to default-src | PASS | 8.2 | HIGH | 0.39s |
| Security header x-content-type-options is set to nosniff on login page |
N/A |
Files are run using the content type because nosniff is set for the header x-content-type-options | PASS | 4.8 | MEDIUM | 0.39s |
| Test Name | Parameters | Description | Status | CVSS Score (Baseline) | Severity | Duration |
|---|---|---|---|---|---|---|
| Security header attribute 'unsafe-eval' should not be used for default-src directive on login page |
_pytest_bdd_example: {'attribute': "'unsafe-eval'"} |
The content-security-policy header should not have unsafe- attributes for the default-src directive | FAIL |
8.2
Recorded Errors assert attribute not in security_policy_dict["default-src"] assert "'unsafe-eval'" not in ["'self'", "'unsafe-inline'", "'unsafe-eval'", 'localhost', 'localhost:*'] |
HIGH | 0.39s |
| Security header attribute 'unsafe-inline' should not be used for default-src directive on login page |
_pytest_bdd_example: {'attribute': "'unsafe-inline'"} |
The content-security-policy header should not have unsafe- attributes for the default-src directive | FAIL |
8.2
Recorded Errors assert attribute not in security_policy_dict["default-src"] assert "'unsafe-inline'" not in ["'self'", "'unsafe-inline'", "'unsafe-eval'", 'localhost', 'localhost:*'] |
HIGH | 0.38s |
| Security header directive form-action should be set to 'none' or 'self' on login page |
_pytest_bdd_example: {'directive': 'form-action', 'fallback': 'False'} |
Directives should be set to 'none' or 'self' on login page if it exists and does not fall back to default-src | FAIL |
8.2
Recorded Errors assert is_directive_secure == True assert False == True |
HIGH | 0.37s |
| Security header directive form-action should not be set to * or http: on login page |
_pytest_bdd_example: {'directive': 'form-action', 'fallback': 'False'} |
Directives should not be set to * or http: on login page if it exists and falls back to default-src | FAIL |
8.2
Recorded Errors assert is_directive_secure == True assert False == True |
HIGH | 0.4s |
| Test Name | Parameters | Description | Status | CVSS Score (Baseline) | Severity | Duration |
|---|---|---|---|---|---|---|
| Session cookie should change when logging out |
N/A |
After a user logs out of a system, the cookie holding information about the login should expire and a new one should be created | PASS | 9.2 | CRITICAL | 5.43s |
| Cookies have HTTPOnly attribute |
N/A |
Test whether cookies have the HTTPOnly attribute enabled. | PASS | 9.2 | CRITICAL | 2.92s |
| Session cookie hijacked |
N/A |
After a user logs out of a system, the cookie holding information about the login is used to try and regain access | PASS | 9.2 | CRITICAL | 5.38s |
| Cookies have SameSite attribute |
N/A |
Test whether cookies have the SameSite attribute to Strict or Lax. | PASS | 5.1 | MEDIUM | 2.85s |
| Session cookie can be used by a valid user |
N/A |
After leaving the page and coming back without logging out the cookie information grants access to the users account | PASS | 9.2 | CRITICAL | 3.61s |
| Test Name | Parameters | Description | Status | CVSS Score (Baseline) | Severity | Duration |
|---|---|---|---|---|---|---|
| Cookies have Secure attribute |
N/A |
Test whether cookies have the secure attribute enabled. | FAIL |
9.2
Recorded Errors assert cookie["secure"] == True assert False == True |
CRITICAL | 2.83s |