Skip to content

Commit 65dcdcd

Browse files
author
David Christofas
authored
escape ldap filters (#2042)
1 parent 73f10ed commit 65dcdcd

File tree

4 files changed

+12
-7
lines changed

4 files changed

+12
-7
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
Enhancement: escape ldap filters
2+
3+
Added ldap filter escaping to increase the security of reva.
4+
5+
https://github.com/cs3org/reva/pull/2042

pkg/auth/manager/ldap/ldap.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -244,5 +244,5 @@ func (am *mgr) Authenticate(ctx context.Context, clientID, clientSecret string)
244244
}
245245

246246
func (am *mgr) getLoginFilter(login string) string {
247-
return strings.ReplaceAll(am.c.LoginFilter, "{{login}}", login)
247+
return strings.ReplaceAll(am.c.LoginFilter, "{{login}}", ldap.EscapeFilter(login))
248248
}

pkg/group/manager/ldap/ldap.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -393,10 +393,10 @@ func (m *manager) getMemberFilter(gid *grouppb.GroupId) string {
393393
}
394394

395395
func (m *manager) getAttributeFilter(attribute, value string) string {
396-
attr := strings.ReplaceAll(m.c.AttributeFilter, "{{attr}}", attribute)
397-
return strings.ReplaceAll(attr, "{{value}}", value)
396+
attr := strings.ReplaceAll(m.c.AttributeFilter, "{{attr}}", ldap.EscapeFilter(attribute))
397+
return strings.ReplaceAll(attr, "{{value}}", ldap.EscapeFilter(value))
398398
}
399399

400400
func (m *manager) getFindFilter(query string) string {
401-
return strings.ReplaceAll(m.c.FindFilter, "{{query}}", query)
401+
return strings.ReplaceAll(m.c.FindFilter, "{{query}}", ldap.EscapeFilter(query))
402402
}

pkg/user/manager/ldap/ldap.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -424,12 +424,12 @@ func (m *manager) getUserFilter(uid *userpb.UserId) string {
424424
}
425425

426426
func (m *manager) getAttributeFilter(attribute, value string) string {
427-
attr := strings.ReplaceAll(m.c.AttributeFilter, "{{attr}}", attribute)
428-
return strings.ReplaceAll(attr, "{{value}}", value)
427+
attr := strings.ReplaceAll(m.c.AttributeFilter, "{{attr}}", ldap.EscapeFilter(attribute))
428+
return strings.ReplaceAll(attr, "{{value}}", ldap.EscapeFilter(value))
429429
}
430430

431431
func (m *manager) getFindFilter(query string) string {
432-
return strings.ReplaceAll(m.c.FindFilter, "{{query}}", query)
432+
return strings.ReplaceAll(m.c.FindFilter, "{{query}}", ldap.EscapeFilter(query))
433433
}
434434

435435
func (m *manager) getGroupFilter(uid *userpb.UserId) string {

0 commit comments

Comments
 (0)