View Issue Details

IDProjectCategoryView StatusLast Update
0010250Talerlibeufin-bankpublic2025-09-02 20:28
ReporterChristian Grothoff Assigned ToAntoine A  
PrioritynormalSeveritymajorReproducibilityhave not tried
Status assignedResolutionopen 
Platformi7OSDebian GNU/LinuxOS Versionsqueeze
Product Version1.0 
Target Version1.1 
Summary0010250: body of tan_challenges stores passwords in the clear?
DescriptionFrom my understanding (but didn't try it out), the 'body' field of tan_challenges might store the new password in cleartext when a user is given a 2-FA challenge when changing the account password. That would be very bad. I think it would suffice for us to store the hash of the body, which would be more compact and avoid the vulnerability.
Tagssecurity

Activities

Antoine A

2025-09-02 16:26

developer   ~0025773

We wanted to avoid having to hash the body, as this can cause problems especially with canonicalization. The solution was for the server to store the body and use the stored body once the challenge was solved. This means that the body is only transmitted *once*, but it is stored in plain text, which is less than ideal for passwords.
If we hashed the parsed body (the Kotlin class) we would have something that does not require canonicalization and but it can break when we update the server. This is not a big problem as the user can just retry.
This would be a breaking change as this mean the body is passed *twice* but this is something we can do for the SPA

Christian Grothoff

2025-09-02 16:46

manager   ~0025774

I can see the canonicalization issues, but storing the user's new password in the clear in the database is IMO a *bigger* issue. We should discuss this entire design, but I'm busy tomorrow, so probably Thursday might work. Need to make sure merchant + libeufin do it the same way, and both do it "right".

Issue History

Date Modified Username Field Change
2025-08-12 08:49 Christian Grothoff New Issue
2025-08-12 08:49 Christian Grothoff Status new => assigned
2025-08-12 08:49 Christian Grothoff Assigned To => Antoine A
2025-08-12 08:50 Christian Grothoff Tag Attached: security
2025-09-02 16:26 Antoine A Note Added: 0025773
2025-09-02 16:27 Antoine A Status assigned => feedback
2025-09-02 16:46 Christian Grothoff Note Added: 0025774
2025-09-02 16:46 Christian Grothoff Status feedback => assigned