information_schema.user_attributes allows unauthorized data access
- Dominant language
- Go
- Stars
- 40.5k
- Forks
- 6.2k
- PR merge metrics
- PR metrics pending
Description
## Bug Report
Please answer these questions before submitting your issue. Thanks!
### 1. Minimal reproduce step (Required)
```
-- connect as root
ALTER USER 'root' ATTRIBUTE '{
"security_level": "top_secret",
"clearance": "level9",
"backup_email": "root_backup@company.com",
"emergency_contact": "+1-555-0123"
}';
-- connect as foo
SELECT * FROM INFORMATION_SCHEMA.USER_ATTRIBUTES WHERE USER = 'root';
```
### 2. What did you expect to see? (Required)
```
MySQL [(none)]> SELECT * FROM INFORMATION_SCHEMA.USER_ATTRIBUTES WHERE USER = 'root';
Empty set (0.001 sec)
```
### 3. What did you see instead (Required)
```
MySQL [(none)]> SELECT * FROM INFORMATION_SCHEMA.USER_ATTRIBUTES WHERE USER = 'root';
+------+------+----------------------------------------------------------------------------------------------------------------------------------------+
| USER | HOST | ATTRIBUTE |
+------+------+----------------------------------------------------------------------------------------------------------------------------------------+
| root | % | {"backup_email": "root_backup@company.com", "clearance": "level9", "emergency_contact": "+1-555-0123", "security_level": "top_secret"} |
+------+------+----------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.007 sec)
```
### 4. What is your TiDB version? (Required)
```
Release Version: v9.0.0-beta.1
Edition: Community
Git Commit Hash: 7aff918dcbfa6facf2adef9ade9961c40f217421
Git Branch: HEAD
UTC Build Time: 2025-03-24 09:09:55
GoVersion: go1.23.7
Race Enabled: false
Check Table Before Drop: false
Store: unistore
```
Contributor guide
Assessment
This issue has not been assessed yet.