Skip to content

Session: Enable session duplication with session-specific content - refs BT#22254#7440

Merged
christianbeeznest merged 1 commit into
chamilo:masterfrom
christianbeeznest:rna-22254
Jan 26, 2026
Merged

Session: Enable session duplication with session-specific content - refs BT#22254#7440
christianbeeznest merged 1 commit into
chamilo:masterfrom
christianbeeznest:rna-22254

Conversation

@christianbeeznest

Copy link
Copy Markdown
Contributor

No description provided.

@christianbeeznest christianbeeznest merged commit dc36893 into chamilo:master Jan 26, 2026
0 of 7 checks passed
AngelFQC added a commit that referenced this pull request Jun 17, 2026
The user-selection query mixed AND and OR without parentheses, so SQL
precedence made the active <> USER_SOFT_DELETED filter apply only to the
first LIKE clause; the trailing OR clause matched users regardless of
status, exposing soft-deleted accounts in the admin assignment list.

The OR was a redundant leftover: it originally matched the first letter in
both original and lowercased case ('A%' OR 'a%'), but a 2015 SQLi-hardening
change (refs #7440) replaced both sides with the same escaped lowercase
value, leaving two identical conditions. With Chamilo's case-insensitive
collation a single lowercase LIKE already matches both cases, so collapse
the OR to one LIKE. This both removes the dead condition and eliminates the
precedence ambiguity, keeping the active-status filter always applied.

Refs GHSA-6cmq-j35w-q932

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
AngelFQC added a commit that referenced this pull request Jun 17, 2026
The user-selection query in access_url_add_users_to_url.php mixed AND and OR
without parentheses, so SQL precedence made the active <> USER_SOFT_DELETED
filter apply only to the first LIKE clause; the trailing OR clause matched
users regardless of status, listing soft-deleted accounts in the admin
assignment UI.

The OR was a redundant leftover: it originally matched the first letter in
both original and lowercased case ('A%' OR 'a%'), but a 2015 change (refs
#7440) replaced both sides with the same escaped lowercase value, leaving
two identical conditions. With Chamilo's case-insensitive collation a single
lowercase LIKE already matches both cases, so collapse the OR to one LIKE.
This removes the dead condition and the precedence ambiguity, keeping the
active-status filter always applied.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
AngelFQC added a commit that referenced this pull request Jun 17, 2026
The user-selection query in access_url_add_users_to_url.php mixed AND and OR
without parentheses, so SQL precedence made the active <> USER_SOFT_DELETED
filter apply only to the first LIKE clause; the trailing OR clause matched
users regardless of status, listing soft-deleted accounts in the admin
assignment UI.

The OR was a redundant leftover: it originally matched the first letter in
both original and lowercased case ('A%' OR 'a%'), but a 2015 change (refs
#7440) replaced both sides with the same escaped lowercase value, leaving
two identical conditions. With Chamilo's case-insensitive collation a single
lowercase LIKE already matches both cases, so collapse the OR to one LIKE.
This removes the dead condition and the precedence ambiguity, keeping the
active-status filter always applied.

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Ilyassbennanii pushed a commit to Ilyassbennanii/chamilo-lms that referenced this pull request Jun 23, 2026
The user-selection query in access_url_add_users_to_url.php mixed AND and OR
without parentheses, so SQL precedence made the active <> USER_SOFT_DELETED
filter apply only to the first LIKE clause; the trailing OR clause matched
users regardless of status, listing soft-deleted accounts in the admin
assignment UI.

The OR was a redundant leftover: it originally matched the first letter in
both original and lowercased case ('A%' OR 'a%'), but a 2015 change (refs
chamilo#7440) replaced both sides with the same escaped lowercase value, leaving
two identical conditions. With Chamilo's case-insensitive collation a single
lowercase LIKE already matches both cases, so collapse the OR to one LIKE.
This removes the dead condition and the precedence ambiguity, keeping the
active-status filter always applied.

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant