Commit 6e9722e
committed
tpm2-sessions: Fix out of range indexing in name_size
'name_size' does not have any range checks, and it just directly indexes
with TPM_ALG_ID, which could lead into memory corruption at worst.
Address the issue by only processing known values and returning -EINVAL for
unrecognized values.
Make also 'tpm_buf_append_name' and 'tpm_buf_fill_hmac_session' fallible so
that errors are detected before causing any spurious TPM traffic.
End also the authorization session on failure in both of the functions, as
the session state would be then by definition corrupted.
Cc: stable@vger.kernel.org # v6.10+
Fixes: 1085b82 ("tpm: Add the rest of the session HMAC API")
Reviewed-by: Jonathan McDowell <noodles@meta.com>
Signed-off-by: Jarkko Sakkinen <jarkko@kernel.org>1 parent 2061f18 commit 6e9722e
4 files changed
Lines changed: 142 additions & 55 deletions
File tree
- drivers/char/tpm
- include/linux
- security/keys/trusted-keys
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
199 | 199 | | |
200 | 200 | | |
201 | 201 | | |
202 | | - | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
203 | 207 | | |
204 | 208 | | |
205 | 209 | | |
| |||
214 | 218 | | |
215 | 219 | | |
216 | 220 | | |
217 | | - | |
218 | | - | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
219 | 229 | | |
220 | 230 | | |
221 | 231 | | |
| |||
273 | 283 | | |
274 | 284 | | |
275 | 285 | | |
276 | | - | |
| 286 | + | |
| 287 | + | |
| 288 | + | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
277 | 292 | | |
278 | 293 | | |
279 | 294 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
144 | 144 | | |
145 | 145 | | |
146 | 146 | | |
147 | | - | |
| 147 | + | |
148 | 148 | | |
149 | | - | |
150 | | - | |
151 | | - | |
152 | | - | |
153 | | - | |
154 | | - | |
155 | | - | |
156 | | - | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
157 | 164 | | |
158 | 165 | | |
159 | 166 | | |
160 | 167 | | |
161 | 168 | | |
162 | 169 | | |
163 | 170 | | |
| 171 | + | |
164 | 172 | | |
165 | 173 | | |
166 | 174 | | |
| |||
173 | 181 | | |
174 | 182 | | |
175 | 183 | | |
176 | | - | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
177 | 189 | | |
| 190 | + | |
178 | 191 | | |
179 | 192 | | |
180 | 193 | | |
| |||
221 | 234 | | |
222 | 235 | | |
223 | 236 | | |
| 237 | + | |
| 238 | + | |
224 | 239 | | |
225 | | - | |
226 | | - | |
| 240 | + | |
| 241 | + | |
227 | 242 | | |
228 | 243 | | |
229 | 244 | | |
230 | 245 | | |
231 | 246 | | |
| 247 | + | |
232 | 248 | | |
233 | 249 | | |
234 | 250 | | |
235 | 251 | | |
236 | | - | |
| 252 | + | |
237 | 253 | | |
238 | 254 | | |
239 | 255 | | |
240 | 256 | | |
241 | 257 | | |
242 | | - | |
243 | | - | |
| 258 | + | |
| 259 | + | |
| 260 | + | |
244 | 261 | | |
245 | 262 | | |
246 | | - | |
247 | | - | |
| 263 | + | |
| 264 | + | |
| 265 | + | |
| 266 | + | |
| 267 | + | |
248 | 268 | | |
249 | 269 | | |
250 | 270 | | |
251 | 271 | | |
252 | 272 | | |
253 | 273 | | |
254 | | - | |
255 | | - | |
| 274 | + | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
256 | 279 | | |
257 | | - | |
258 | | - | |
| 280 | + | |
| 281 | + | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
| 285 | + | |
259 | 286 | | |
260 | 287 | | |
261 | 288 | | |
262 | | - | |
263 | | - | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
| 293 | + | |
| 294 | + | |
| 295 | + | |
| 296 | + | |
| 297 | + | |
| 298 | + | |
| 299 | + | |
| 300 | + | |
| 301 | + | |
| 302 | + | |
264 | 303 | | |
265 | 304 | | |
266 | 305 | | |
| |||
533 | 572 | | |
534 | 573 | | |
535 | 574 | | |
536 | | - | |
537 | | - | |
538 | | - | |
| 575 | + | |
539 | 576 | | |
540 | | - | |
| 577 | + | |
541 | 578 | | |
542 | 579 | | |
543 | 580 | | |
| |||
549 | 586 | | |
550 | 587 | | |
551 | 588 | | |
| 589 | + | |
552 | 590 | | |
553 | | - | |
554 | | - | |
| 591 | + | |
| 592 | + | |
| 593 | + | |
| 594 | + | |
555 | 595 | | |
556 | 596 | | |
557 | 597 | | |
| |||
560 | 600 | | |
561 | 601 | | |
562 | 602 | | |
563 | | - | |
564 | | - | |
| 603 | + | |
| 604 | + | |
| 605 | + | |
565 | 606 | | |
| 607 | + | |
566 | 608 | | |
567 | 609 | | |
568 | 610 | | |
| |||
576 | 618 | | |
577 | 619 | | |
578 | 620 | | |
579 | | - | |
580 | | - | |
581 | | - | |
| 621 | + | |
| 622 | + | |
| 623 | + | |
582 | 624 | | |
583 | 625 | | |
584 | 626 | | |
| |||
609 | 651 | | |
610 | 652 | | |
611 | 653 | | |
612 | | - | |
613 | | - | |
| 654 | + | |
| 655 | + | |
| 656 | + | |
614 | 657 | | |
615 | 658 | | |
616 | | - | |
617 | | - | |
| 659 | + | |
| 660 | + | |
| 661 | + | |
618 | 662 | | |
619 | 663 | | |
620 | 664 | | |
| |||
646 | 690 | | |
647 | 691 | | |
648 | 692 | | |
649 | | - | |
650 | | - | |
| 693 | + | |
| 694 | + | |
| 695 | + | |
| 696 | + | |
| 697 | + | |
651 | 698 | | |
652 | 699 | | |
653 | 700 | | |
| |||
668 | 715 | | |
669 | 716 | | |
670 | 717 | | |
| 718 | + | |
| 719 | + | |
| 720 | + | |
| 721 | + | |
| 722 | + | |
671 | 723 | | |
672 | 724 | | |
673 | 725 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
529 | 529 | | |
530 | 530 | | |
531 | 531 | | |
532 | | - | |
533 | | - | |
| 532 | + | |
| 533 | + | |
534 | 534 | | |
535 | 535 | | |
536 | 536 | | |
| |||
563 | 563 | | |
564 | 564 | | |
565 | 565 | | |
566 | | - | |
| 566 | + | |
567 | 567 | | |
568 | 568 | | |
569 | 569 | | |
| |||
577 | 577 | | |
578 | 578 | | |
579 | 579 | | |
580 | | - | |
581 | | - | |
| 580 | + | |
| 581 | + | |
| 582 | + | |
582 | 583 | | |
| 584 | + | |
583 | 585 | | |
| 586 | + | |
584 | 587 | | |
585 | 588 | | |
586 | 589 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
268 | 268 | | |
269 | 269 | | |
270 | 270 | | |
271 | | - | |
| 271 | + | |
| 272 | + | |
| 273 | + | |
| 274 | + | |
272 | 275 | | |
273 | 276 | | |
274 | 277 | | |
| |||
316 | 319 | | |
317 | 320 | | |
318 | 321 | | |
319 | | - | |
| 322 | + | |
| 323 | + | |
| 324 | + | |
| 325 | + | |
320 | 326 | | |
321 | 327 | | |
322 | 328 | | |
| |||
427 | 433 | | |
428 | 434 | | |
429 | 435 | | |
430 | | - | |
| 436 | + | |
| 437 | + | |
| 438 | + | |
| 439 | + | |
431 | 440 | | |
432 | 441 | | |
433 | 442 | | |
| |||
439 | 448 | | |
440 | 449 | | |
441 | 450 | | |
442 | | - | |
| 451 | + | |
| 452 | + | |
| 453 | + | |
| 454 | + | |
443 | 455 | | |
444 | 456 | | |
445 | 457 | | |
| |||
484 | 496 | | |
485 | 497 | | |
486 | 498 | | |
487 | | - | |
| 499 | + | |
| 500 | + | |
| 501 | + | |
488 | 502 | | |
489 | 503 | | |
490 | 504 | | |
| |||
509 | 523 | | |
510 | 524 | | |
511 | 525 | | |
512 | | - | |
| 526 | + | |
| 527 | + | |
| 528 | + | |
| 529 | + | |
513 | 530 | | |
514 | 531 | | |
515 | 532 | | |
| |||
0 commit comments