Commit 07e0837
committed
fix(security): NotificationSubscriptionsController — verify register/schema access
`create()` forwarded `registerId` / `schemaId` straight to the mapper.
The mapper validated only that at least one was non-null; never that
the caller has read access to the referenced register/schema, or that
they exist at all. Two issues:
1. A user could subscribe to any (register, schema) tuple in any
tenant. Whether the downstream notification dispatcher re-checks
permissions before sending is irrelevant — the subscription rows
leak existence and let an attacker probe the schema namespace.
2. The mapper's success/404 distinction was a confirmed-existence
channel for arbitrary integer IDs.
Inject `RegisterMapper` + `SchemaMapper` and call `find()` (with
default RBAC + multitenancy filters on) before insert. 404 on miss.
Refs: #1419 review (concern 7) — discussion_r31874944901 parent 89380de commit 07e0837
1 file changed
Lines changed: 39 additions & 5 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
37 | 37 | | |
38 | 38 | | |
39 | 39 | | |
| 40 | + | |
| 41 | + | |
40 | 42 | | |
41 | 43 | | |
42 | 44 | | |
43 | 45 | | |
44 | 46 | | |
45 | 47 | | |
46 | 48 | | |
47 | | - | |
48 | | - | |
49 | | - | |
50 | | - | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
51 | 55 | | |
52 | 56 | | |
53 | 57 | | |
54 | 58 | | |
55 | 59 | | |
56 | | - | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
57 | 63 | | |
58 | 64 | | |
59 | 65 | | |
| |||
105 | 111 | | |
106 | 112 | | |
107 | 113 | | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
108 | 142 | | |
109 | 143 | | |
110 | 144 | | |
| |||
0 commit comments