Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

Security: Deleted content exposure + revision history IDOR via sequential IDs

Đang mở
#1,506 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Đánh giá

Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức phù hợp với người mới
35/100
Loại issue
Lỗi
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Đình trệ
Công nghệ
go
Lĩnh vực
api, backend, security

Hướng nghiên cứu

Bắt đầu với AnswerService.Get và GetObjectTimelineDetail cho hai endpoint bị ảnh hưởng, sau đó so sánh các kiểm tra quyền truy cập của chúng với SearchList, GetRevisionList và GetQuestion. Theo dõi cách các câu hỏi, câu trả lời và bản revision đã bị xóa hoặc đang chờ xử lý được tải. Được xem là hoàn tất khi các câu trả lời đã bị xóa không còn bị hiển thị cho người dùng chưa xác thực và nội dung của các revision đã bị xóa hoặc đang chờ xử lý không còn bị hiển thị cho người dùng đã xác thực, trong khi nội dung được phép vẫn có thể truy cập.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

Summary

Two information disclosure issues allow access to deleted/pending content:

1. Deleted Answer Content via GET /answer/api/v1/answer/info (Low-Medium)

`AnswerService.Get()` calls `answerRepo.GetByID()` which fetches answers by raw ID with no `status != deleted` filter. Deleted answers are returned with full content to unauthenticated callers.

Secure comparison: `SearchList` correctly filters: `session.Where("status != ?", entity.AnswerStatusDeleted)`

2. Revision History IDOR via GET /answer/api/v1/activity/timeline/detail (Medium)

`GetObjectTimelineDetail` fetches revision content by sequential integer ID (`autoincr BIGINT`). No check for whether the associated question/answer is deleted or pending. Any authenticated user can enumerate `revision_id=1,2,3...` to read full content of deleted/pending questions and answers.

Secure comparison: `GetRevisionList` correctly checks `objInfo.IsDeleted()` before showing history. `GetQuestion` blocks access to deleted/pending content.

Impact
  • Bypasses content moderation (admin-deleted content remains accessible)
  • Reveals pending-review content before publication
  • Sequential revision IDs make enumeration trivial

Discovery

Found through automated security research comparing content visibility controls across endpoints.

Ngôn ngữ chính
Go
Star
15.7k
Fork
1.4k
Merge trung bình
1 ngày 20 giờ
Pull request đã merge (30 ngày)
6

Hướng dẫn đóng góp

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của apache/answer

Tất cả issue của apache/answer

Issue tương tự

Thêm issue về Go

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.