- Se descapó
- 19 de agosto de 2026 a las 2:02 UTC
- Autor
- kamo
- Compromit
- 1709c43
Barrer del cliente la mitad del trabajo de identificación int64. Cada uno de estos tomó un identificador que el servidor tenía enviado intacto y ponerlo a través de Number(()/parseInt(), que redondea cualquier cosa más allá de 2o53 -- Así que la petición nombró una fila que no existe. Varios se sentaron al lado de una llamada de hermanos que ya envió el mismo identificado exactamente, que es lo que los hace visibles: - binderApi.shareBinder envió Número(memberId) mientras que deshareBinder lo envía entero, así que a La carpeta podría ser compartida y luego no compartir. - MiembroCreateForm envió Número (miembroId) para asignar un buzón, y luego utilizó el mismo identificador intacto en el camino de correo primario una llamada más tarde - dos llamadas, dos miembros diferentes. - Los recolectores de señales de la señal electrónica rodearon el miembro, la cuenta uid y el miembro de la cuenta id, uniendo a los firmantes a los ids que no existen. - Los pedidos de comercio analizaron a un comprador mecanografiadoUid con parseInt, por lo que pegando un real de 19 dígitos uid creó la orden contra un comprador diferente. - PipelineApplicationsTab adaptó la cuerda exacta de la cuerda de AppsApi con Números (), y ese uid redondeado entonces condujo enrutado Y **************** - un Estado de escritura contra la solicitud de préstamo equivocada. Su dedupe Mapa y selección se: ahora llavedo por String(uid); los dos endpoints responden con diferentes tipos JS para los mismos aplicación, por lo que una tecla numérica nunca podría coincidir con una cadena. Los tipos se ensanchan a la cuerda del número en lugar de la cuerda: un número es lo que es un servicio que Todavía no se ha reconstruido enviado, y ya está redondeado para entonces. La aritmética dos Los usos de un uid eran semilla demo, no identidad, y ahora coaccion de manera explícita y local. scripts/check-int64-zod-ids.mjs se une a la prueba npm y cierra la puerta en la trampa específica que comenzó esto: un sindicato zod toma la rama de la primera combinación, así que z.union([z.coerce.number(), z.string()])))))))) analiza un id exacto directamente de vuelta a una pérdida dobles mientras se lee casi idénticamente al orden correcto. Testitura contra el defecto original de la organizaciónDTOSchema.