제출 #802561: opensourcepos Open Source Point of Sale 3.4.1 Weak Encoding for Password정보

제목opensourcepos Open Source Point of Sale 3.4.1 Weak Encoding for Password
설명The system still accepts MD5 hashes for password verification, supporting legacy accounts. MD5 is cryptographically broken and unsuitable for password hashing. Attackers with rainbow tables can crack these passwords. public function login(string $username, string $password): bool { $builder = $this->db->table('employees'); $query = $builder->getWhere(['username' => $username, 'deleted' => 0], 1); if ($query->getNumRows() === 1) { $row = $query->getRow(); // Compare passwords depending on the hash version if ($row->hash_version === '1' && $row->password === md5($password)) { // VULNERABLE $builder->where('person_id', $row->person_id); $this->session->set('person_id', $row->person_id); $password_hash = password_hash($password, PASSWORD_DEFAULT); return $builder->update(['hash_version' => 2, 'password' => $password_hash]); } elseif ($row->hash_version === '2' && password_verify($password, $row->password)) { $this->session->set('person_id', $row->person_id); return true; } } It is recommended to migrate to SHA-256 or a stronger encryption algorithm. Also, recommended to use forced password resets for the already created accounts to ensure the credentals are rotated and latest eencryption is applied to the new credentials.
사용자
 Kamran Saifullah (UID 4218)
제출2026. 04. 11. AM 12:20 (6 개월 ago)
모더레이션2026. 05. 18. AM 06:38 (1 month later)
상태수락
VulDB 항목364436 [opensourcepos Open Source Point of Sale 까지 3.4.2 Employee Login app/Models/Employee.php login 약한 암호화]
포인트들17

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!