Commit b4833f4
committed
Validate external file path at metadata load time
External tables store the file path in RDB$EXTERNAL_FILE at CREATE
TABLE time without any check against the ExternalFileAccess policy.
The path was validated only later, when the table was actually opened,
so a table pointing outside the allowed directories could be created
and the malicious path remained in metadata.
Move the validation into a shared checkExternalFileAccess() helper and
call it both when the relation metadata is loaded (met.epp) and when
the external file is opened (ExternalFile::open). Paths escaping the
configured directory list are now rejected at CREATE TABLE time with
isc_conf_access_denied, and existing databases with such tables fail
on first access instead of silently carrying the bad path.1 parent f0b0d0c commit b4833f4
3 files changed
Lines changed: 28 additions & 7 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
115 | 115 | | |
116 | 116 | | |
117 | 117 | | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
118 | 139 | | |
119 | 140 | | |
120 | 141 | | |
| |||
131 | 152 | | |
132 | 153 | | |
133 | 154 | | |
134 | | - | |
135 | | - | |
136 | | - | |
137 | | - | |
138 | | - | |
139 | | - | |
140 | | - | |
| 155 | + | |
141 | 156 | | |
142 | 157 | | |
143 | 158 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
27 | 27 | | |
28 | 28 | | |
29 | 29 | | |
| 30 | + | |
30 | 31 | | |
31 | 32 | | |
32 | 33 | | |
| |||
43 | 44 | | |
44 | 45 | | |
45 | 46 | | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
46 | 51 | | |
47 | 52 | | |
48 | 53 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3310 | 3310 | | |
3311 | 3311 | | |
3312 | 3312 | | |
| 3313 | + | |
3313 | 3314 | | |
3314 | 3315 | | |
3315 | 3316 | | |
| |||
0 commit comments