service/AuthService.java
[Implicit Provider Auto-Linking]
// VULNERABLE: Auto-links OAuth2 profiles to local accounts by email alone.
// Unverified local accounts allow attackers to squat on target emails and hijack accounts.
User user = userRepository.findByEmail(email)
.map(existing -> {
existing.setProviderId(providerId); // <--- Unsafe link without provider check!
return userRepository.save(existing);
})
.orElseGet(() -> createNewSocialUser(email, name, provider, providerId));