Security vulnerabilities

  • Status Closed
  • Assigned To
    cbay
  • Private
Attached to Project: Security vulnerabilities
Opened by subhash - 12.08.2026
Last edited by cbay - 13.08.2026

FS#442 - Cross-User File Read / Insecure File Permissions Leading to Tenant Isolation Bypass

Description

A cross-user file access vulnerability was identified in the shared hosting environment. The authenticated user remberme is able to read files owned by other users, such as:

/tmp/dashboard.env.local.bak

The file is owned by another account:

Owner: davidgoncalves
Group: davidgoncalves
Permissions: 664

The permission mode 664 grants read access to users outside the file owner/group through the other::r– permission.

Using the remberme account, I successfully verified that the file is readable, demonstrating a violation of expected cross-user filesystem isolation.

CVSS → CVSS v3.1: 7.0 (High)

The severity may increase if the affected files contain credentials, API keys, private source code, customer information, or other sensitive data.

Steps to Reproduce

1- Log in to the hosting environment using a normal account, e.g.: remberme@ssh1

2- Identify a file belonging to another user: stat -c 'owner=%U group=%G mode=%a file=%n' /tmp/dashboard.env.local.bak

3- The file reports:

owner=davidgoncalves
group=davidgoncalves
mode=664

4- Check the ACL: getfacl -p /tmp/dashboard.env.local.bak

5- The output confirms:

user::rw-
group::rw-
other::r--

6- While authenticated as remberme, verify read access: test -r /tmp/dashboard.env.local.bak && echo "READABLE" || echo "NOT_READABLE"

7- The result is: READABLE

8- A non-destructive read test was performed:

head -c 1 /tmp/dashboard.env.local.bak >/dev/null 2>&1 \
&& echo "CROSS-USER READ CONFIRMED" \
|| echo "READ FAILED"

9- Result: CROSS-USER READ CONFIRMED
No modification, deletion, or execution of the other user's file was performed.

Actual Behaviour

A normal authenticated user is able to obtain read access to a file owned by another user/account. This demonstrates insufficient filesystem isolation between users in the shared hosting environment.

Expected Behaviour

Files belonging to another customer/user should not be readable by an unrelated authenticated account unless explicitly shared. The platform should enforce strict per-user filesystem isolation and ensure that customer-owned files are inaccessible to other customers.

Impact An attacker with a valid low-privileged hosting account could potentially enumerate and read files belonging to other users when those files are created with overly permissive permissions.

Depending on the affected files, this could expose:

1- Application source code
2- Configuration files
3- Database credentials
4- API keys/tokens
5- Environment variables
6- Internal application data
7- Customer-specific information
8- Backup files

The demonstrated .env.local.bak filename is particularly concerning because environment/backup files commonly contain application configuration and secrets.

Business Impact

This issue breaks the fundamental tenant isolation expected from a multi-user hosting platform.

Successful exploitation could allow one customer to access another customer's confidential application data or credentials, potentially resulting in:

1- Customer data exposure
2- Credential/API-key compromise
3- Unauthorized access to external services
4- Loss of customer trust
5- Privacy and compliance concerns
6- Increased impact from chained attacks

The business impact depends on the sensitivity of the files exposed through the insecure permissions.

Conclusion

The testing demonstrates that the remberme account can read a file owned by the unrelated davidgoncalves account due to permissive filesystem permissions.

The issue is therefore reproducible and not merely theoretical. I recommend enforcing strict per-user filesystem isolation and preventing files created by one customer from being readable by other customers by default.

Thanks

Closed by  cbay
13.08.2026 07:56
Reason for closing:  Duplicate
Additional comments about closing:  

https://security.alwaysda ta.com/task/389

Additional PoC / Evidence

Command 1— Verify ownership and permissions: stat -c 'owner=%U group=%G mode=%a file=%n' /tmp/dashboard.env.local.bak
getfacl -p /tmp/dashboard.env.local.bak

Command 2— head -n 5 /tmp/dashboard.env.local.bak | sed -E 's/(=).*/\1[REDACTED]/'

Command 3- wc -c /tmp/dashboard.env.local.bak

Command 4- head -n 1 /tmp/dashboard.env.local.bak | cut -c1-30

Coammand 5- awk -F= '{print $1"=[REDACTED]"}' /tmp/dashboard.env.local.bak

kindly view attachment

Thanks

Additional PoC / Cross-User Enumeration + Read

Step 1 — Enumerate files accessible from /tmp:

find /tmp -maxdepth 2 -type f -readable -printf '%u:%g %m %p\n' 2>/dev/null | head -50

Step 2 — Verify the discovered file belongs to another user:

stat -c 'owner=%U group=%G mode=%a file=%n' /tmp/dashboard.env.local.bak

Step 3 — Verify actual read access:

test -r /tmp/dashboard.env.local.bak && echo "CROSS-USER READ CONFIRMED"

Step 4- Demonstrate content disclosure with values redacted:

awk -F= '{print $1"=[REDACTED]"}' /tmp/dashboard.env.local.bak

Cross-User Account Discovery: The issue is not limited to a known file path. From the remberme account, I was able to enumerate files under /tmp and obtain metadata including filenames, ownership, group information, and permissions belonging to other users. During this enumeration, files belonging to unrelated accounts such as davidgoncalves were identified. I then verified that /tmp/dashboard.env.local.bak was readable by remberme and confirmed actual content disclosure. Similar cross-user files were also observable during the enumeration, indicating that the exposure is not isolated to a single user/file.

Thanks

Loading...

Available keyboard shortcuts

Tasklist

Task Details

Task Editing