coolify/tests/Feature
Andras Bacsai 336fa0c714 fix: critical privilege escalation in team invitation system
This commit addresses a critical security vulnerability where low-privileged
users (members) could invite high-privileged users (admins/owners) to teams,
allowing them to escalate their own privileges through password reset.

Root Causes Fixed:
1. TeamPolicy authorization checks were commented out, allowing all team
   members to manage invitations instead of just admins/owners
2. Missing role elevation checks in InviteLink component allowed members
   to invite users with higher privileges

Security Fixes:

1. app/Policies/TeamPolicy.php
   - Uncommented and enforced authorization checks for:
     * update() - Only admins/owners can update team settings
     * delete() - Only admins/owners can delete teams
     * manageMembers() - Only admins/owners can manage team members
     * viewAdmin() - Only admins/owners can view admin panel
     * manageInvitations() - Only admins/owners can manage invitations

2. app/Livewire/Team/InviteLink.php
   - Added explicit role elevation checks to prevent:
     * Members from inviting admins or owners
     * Admins from inviting owners (defense-in-depth)
   - Validates that inviter has sufficient privileges for target role

Test Coverage:

1. tests/Feature/TeamPolicyTest.php
   - 24 comprehensive tests covering all policy methods
   - Tests for owner, admin, member, and non-member access
   - Specific tests for the privilege escalation vulnerability

2. tests/Feature/TeamInvitationPrivilegeEscalationTest.php
   - 11 tests covering all role elevation scenarios
   - Tests member → admin/owner escalation (blocked)
   - Tests admin → owner escalation (blocked)
   - Tests valid invitation paths for each role

Impact:
- Prevents privilege escalation attacks
- Protects all Coolify instances from unauthorized access
- Enforces proper role hierarchy in team management

References:
- Identified by Aikido AI whitebox pentest service
- CVE: Pending assignment
- Severity: Critical

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-15 11:42:25 +02:00
..
CloudInitScriptTest.php feat: add cloud-init script support for Hetzner server creation 2025-10-10 19:37:16 +02:00
ConvertArraysTest.php fix: check if array is associative or not 2024-09-03 17:04:56 +02:00
ConvertContainerEnvsToArray.php chore(tests): update test environment database name and add new feature test for converting container environment variables to array 2025-05-22 14:30:16 +02:00
ConvertingGitUrlsTest.php fix: add tests for git url converts 2024-11-12 11:32:18 +01:00
DatabaseBackupJobTest.php feat(backup): enhance backup job with S3 upload handling and notifications 2025-10-07 15:02:23 +02:00
DockerCustomCommandsTest.php refactor 2025-04-23 13:22:01 +02:00
ExecuteContainerCommandTest.php test: setup database for upcoming tests 2024-12-04 12:43:52 +01:00
HetznerServerCreationTest.php feat: add IPv4/IPv6 network configuration for Hetzner server creation 2025-10-10 18:22:25 +02:00
IpAllowlistTest.php refactor(dns-validation): rename DNS validation functions for consistency and clarity, and remove unused code 2025-09-09 09:00:35 +02:00
MultilineEnvironmentVariableTest.php feat(deployments): enhance Docker build argument handling for multiline variables 2025-10-02 13:54:36 +02:00
TeamInvitationEmailNormalizationTest.php refactor(ui): improve styling and consistency in environment variable warning and docker cleanup components 2025-09-25 11:45:07 +02:00
TeamInvitationPrivilegeEscalationTest.php fix: critical privilege escalation in team invitation system 2025-10-15 11:42:25 +02:00
TeamPolicyTest.php fix: critical privilege escalation in team invitation system 2025-10-15 11:42:25 +02:00
Utf8HandlingTest.php feat(utf8-handling): implement UTF-8 sanitization for command outputs and enhance error handling in logs processing 2025-06-05 14:27:39 +02:00