diff --git a/repository/quiz/impl.go b/repository/quiz/impl.go
index b1ffe2a19b2949f46676ce4ba585b5c056463aae..e4f8c122dd0ca2b1375a70fd9ef95936ecf011d4 100644
--- a/repository/quiz/impl.go
+++ b/repository/quiz/impl.go
@@ -40,10 +40,10 @@ func (q *QuizRepositoryImpl) GetQuizDetail(quizId uuid.UUID) (*quiz.Quiz, error)
 	return result, nil
 }
 
-func (q *QuizRepositoryImpl) UpdateScore(quizId uuid.UUID, score int) error {
+func (q *QuizRepositoryImpl) UpdateScore(email string, quizId uuid.UUID, score int) error {
 	return q.db.
 		Model(&quiz.QuizTake{}).
-		Where("quiz_id = ?", quizId).
+		Where("quiz_id = ? AND email = ?", quizId, email).
 		Updates(quiz.QuizTake{
 			Score:      score,
 			IsFinished: true,
diff --git a/repository/quiz/type.go b/repository/quiz/type.go
index 5091ec02b5d095c09d45b8634856a5bfefa6d38b..362686b7a9cc3295c05f680e074f2920afd94ea3 100644
--- a/repository/quiz/type.go
+++ b/repository/quiz/type.go
@@ -8,7 +8,7 @@ import (
 type QuizRepository interface {
 	GetQuizes(courseId string) ([]quiz.Quiz, error)
 	GetQuizDetail(quizId uuid.UUID) (*quiz.Quiz, error)
-	UpdateScore(quizId uuid.UUID, score int) error
+	UpdateScore(email string, quizId uuid.UUID, score int) error
 	NewTake(quizId uuid.UUID, userEmail string) (uuid.UUID, error)
 	IsUserContributor(id string, email string) (bool, error)
 	NewQuiz(quiz quiz.Quiz) error
diff --git a/service/quiz/impl.go b/service/quiz/impl.go
index 6b8bf077d0d11215566b94fbed59fd7a26f0a8b1..12e0377b14e9a922e9fd1b346dc02c39c94f352a 100644
--- a/service/quiz/impl.go
+++ b/service/quiz/impl.go
@@ -180,7 +180,7 @@ func (q QuizServiceImpl) DoFinishQuiz(ctx context.Context, quizId uuid.UUID, ema
 		return nil, err
 	}
 
-	err = q.QuizRepository.UpdateScore(quizId, int(score))
+	err = q.QuizRepository.UpdateScore(email, quizId, int(score))
 
 	if err != nil {
 		return nil, err