firebase_id_token 2.4.0 → 2.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +16 -0
- data/README.md +1 -1
- data/firebase_id_token.gemspec +1 -1
- data/lib/firebase_id_token/signature.rb +16 -3
- data/lib/firebase_id_token/testing/certificates.rb +4 -0
- data/lib/firebase_id_token/version.rb +1 -1
- metadata +34 -34
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d323f3f19f0e2cfa9f511adac526f38261ee28386d4abc210a22e26358008143
|
4
|
+
data.tar.gz: 82095062bbd88ebfe9ddbee3f769f2bc9e4fb0b9289fa673f4bf81d6a24132d0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5d056894ee1051fb9ccb0984624282805f153aca7e9bb41b5d3b39a93b749150311e45e11f7e182fdb4ee1814bea722a5fc49ddb975394f319edb3bbea7424d6
|
7
|
+
data.tar.gz: 998d1b74cdf9b036892e12ab9e7c271417ead8d18c6bbb8dcea04ea555c4fe6a856b79840872676c4aa530726132826f795c686ba5096502004a22ab7df82751
|
data/CHANGELOG.md
CHANGED
@@ -6,6 +6,20 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
6
6
|
|
7
7
|
## [Unreleased]
|
8
8
|
|
9
|
+
## [2.5.0] - 2022-04-13
|
10
|
+
|
11
|
+
### Fixed
|
12
|
+
- Local Code Execution through Argument Injection via dash leading git url parameter in Gemfile [CVE-2021-43809](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-43809).
|
13
|
+
- Dependency Confusion in Bundler [CVE-2020-36327](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-36327).
|
14
|
+
- Insecure path handling in Bundler [CVE-2019-3881](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-3881).
|
15
|
+
|
16
|
+
### Changed
|
17
|
+
- Using Bundler 2.3.11.
|
18
|
+
- Using `Time.current` instead of `Time.now` to work with timezones [PR 34](https://github.com/fschuindt/firebase_id_token/pull/34).
|
19
|
+
- Caching certificates on memory using `Thread` to avoid unnecessary calls into Redis [PR 33](https://github.com/fschuindt/firebase_id_token/pull/33).
|
20
|
+
|
21
|
+
## [2.4.0] - 2020-05-02
|
22
|
+
|
9
23
|
### Fixed
|
10
24
|
- Rake development dependency vulnerability [CVE-2020-8130](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-8130).
|
11
25
|
|
@@ -95,6 +109,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
95
109
|
## [0.1.0] - 2017-04-23
|
96
110
|
*Version removed.*
|
97
111
|
|
112
|
+
[2.5.0]: https://github.com/fschuindt/firebase_id_token/compare/2.4.0...2.5.0
|
113
|
+
[2.4.0]: https://github.com/fschuindt/firebase_id_token/compare/2.3.2...2.4.0
|
98
114
|
[2.3.2]: https://github.com/fschuindt/firebase_id_token/compare/2.3.1...2.3.2
|
99
115
|
[2.3.1]: https://github.com/fschuindt/firebase_id_token/compare/2.3.0...2.3.1
|
100
116
|
[2.3.0]: https://github.com/fschuindt/firebase_id_token/compare/2.0.0...2.3.0
|
data/README.md
CHANGED
data/firebase_id_token.gemspec
CHANGED
@@ -22,7 +22,7 @@ Gem::Specification.new do |spec|
|
|
22
22
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
23
23
|
spec.require_paths = ['lib']
|
24
24
|
|
25
|
-
spec.add_development_dependency 'bundler', '~>
|
25
|
+
spec.add_development_dependency 'bundler', '~> 2.3', '>= 2.3.11'
|
26
26
|
spec.add_development_dependency 'rake', '~> 12.3', '>= 12.3.3'
|
27
27
|
spec.add_development_dependency 'rspec', '~> 3.0'
|
28
28
|
spec.add_development_dependency 'redcarpet', '~> 3.4', '>= 3.4.0'
|
@@ -78,7 +78,20 @@ module FirebaseIdToken
|
|
78
78
|
|
79
79
|
# @see Signature.verify
|
80
80
|
def verify
|
81
|
-
|
81
|
+
var_name = :_firebase_id_token_cert
|
82
|
+
Thread.current[var_name] ||= {
|
83
|
+
cert: nil,
|
84
|
+
expires_at: Time.now.utc - 1
|
85
|
+
}
|
86
|
+
|
87
|
+
if Thread.current[var_name][:expires_at] <= Time.now.utc
|
88
|
+
Thread.current[var_name] = {
|
89
|
+
cert: firebase_id_token_certificates.find(@kid, raise_error: @raise_error),
|
90
|
+
expires_at: Time.now.utc + firebase_id_token_certificates.ttl
|
91
|
+
}
|
92
|
+
end
|
93
|
+
|
94
|
+
certificate = Thread.current[var_name][:cert]
|
82
95
|
return unless certificate
|
83
96
|
|
84
97
|
payload = decode_jwt_payload(@jwt_token, certificate.public_key)
|
@@ -117,8 +130,8 @@ module FirebaseIdToken
|
|
117
130
|
end
|
118
131
|
|
119
132
|
def still_valid?(payload)
|
120
|
-
payload['exp'].to_i > Time.
|
121
|
-
payload['iat'].to_i <= Time.
|
133
|
+
payload['exp'].to_i > Time.current.to_i &&
|
134
|
+
payload['iat'].to_i <= Time.current.to_i
|
122
135
|
end
|
123
136
|
|
124
137
|
def issuer_authorized?(payload)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: firebase_id_token
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Fernando Schuindt
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-04-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -16,20 +16,20 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '2.3'
|
20
20
|
- - ">="
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version:
|
22
|
+
version: 2.3.11
|
23
23
|
type: :development
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
27
|
- - "~>"
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version: '
|
29
|
+
version: '2.3'
|
30
30
|
- - ">="
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
version:
|
32
|
+
version: 2.3.11
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: rake
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -68,22 +68,22 @@ dependencies:
|
|
68
68
|
name: redcarpet
|
69
69
|
requirement: !ruby/object:Gem::Requirement
|
70
70
|
requirements:
|
71
|
-
- - ">="
|
72
|
-
- !ruby/object:Gem::Version
|
73
|
-
version: 3.4.0
|
74
71
|
- - "~>"
|
75
72
|
- !ruby/object:Gem::Version
|
76
73
|
version: '3.4'
|
74
|
+
- - ">="
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: 3.4.0
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
79
|
version_requirements: !ruby/object:Gem::Requirement
|
80
80
|
requirements:
|
81
|
-
- - ">="
|
82
|
-
- !ruby/object:Gem::Version
|
83
|
-
version: 3.4.0
|
84
81
|
- - "~>"
|
85
82
|
- !ruby/object:Gem::Version
|
86
83
|
version: '3.4'
|
84
|
+
- - ">="
|
85
|
+
- !ruby/object:Gem::Version
|
86
|
+
version: 3.4.0
|
87
87
|
- !ruby/object:Gem::Dependency
|
88
88
|
name: simplecov
|
89
89
|
requirement: !ruby/object:Gem::Requirement
|
@@ -102,22 +102,22 @@ dependencies:
|
|
102
102
|
name: codeclimate-test-reporter
|
103
103
|
requirement: !ruby/object:Gem::Requirement
|
104
104
|
requirements:
|
105
|
-
- - ">="
|
106
|
-
- !ruby/object:Gem::Version
|
107
|
-
version: 1.0.0
|
108
105
|
- - "~>"
|
109
106
|
- !ruby/object:Gem::Version
|
110
107
|
version: '1.0'
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 1.0.0
|
111
111
|
type: :development
|
112
112
|
prerelease: false
|
113
113
|
version_requirements: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
|
-
- - ">="
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
version: 1.0.0
|
118
115
|
- - "~>"
|
119
116
|
- !ruby/object:Gem::Version
|
120
117
|
version: '1.0'
|
118
|
+
- - ">="
|
119
|
+
- !ruby/object:Gem::Version
|
120
|
+
version: 1.0.0
|
121
121
|
- !ruby/object:Gem::Dependency
|
122
122
|
name: pry
|
123
123
|
requirement: !ruby/object:Gem::Requirement
|
@@ -156,22 +156,22 @@ dependencies:
|
|
156
156
|
name: redis-namespace
|
157
157
|
requirement: !ruby/object:Gem::Requirement
|
158
158
|
requirements:
|
159
|
-
- - ">="
|
160
|
-
- !ruby/object:Gem::Version
|
161
|
-
version: 1.6.0
|
162
159
|
- - "~>"
|
163
160
|
- !ruby/object:Gem::Version
|
164
161
|
version: '1.6'
|
162
|
+
- - ">="
|
163
|
+
- !ruby/object:Gem::Version
|
164
|
+
version: 1.6.0
|
165
165
|
type: :runtime
|
166
166
|
prerelease: false
|
167
167
|
version_requirements: !ruby/object:Gem::Requirement
|
168
168
|
requirements:
|
169
|
-
- - ">="
|
170
|
-
- !ruby/object:Gem::Version
|
171
|
-
version: 1.6.0
|
172
169
|
- - "~>"
|
173
170
|
- !ruby/object:Gem::Version
|
174
171
|
version: '1.6'
|
172
|
+
- - ">="
|
173
|
+
- !ruby/object:Gem::Version
|
174
|
+
version: 1.6.0
|
175
175
|
- !ruby/object:Gem::Dependency
|
176
176
|
name: httparty
|
177
177
|
requirement: !ruby/object:Gem::Requirement
|
@@ -196,22 +196,22 @@ dependencies:
|
|
196
196
|
name: jwt
|
197
197
|
requirement: !ruby/object:Gem::Requirement
|
198
198
|
requirements:
|
199
|
-
- - ">="
|
200
|
-
- !ruby/object:Gem::Version
|
201
|
-
version: 2.1.0
|
202
199
|
- - "~>"
|
203
200
|
- !ruby/object:Gem::Version
|
204
201
|
version: '2.1'
|
202
|
+
- - ">="
|
203
|
+
- !ruby/object:Gem::Version
|
204
|
+
version: 2.1.0
|
205
205
|
type: :runtime
|
206
206
|
prerelease: false
|
207
207
|
version_requirements: !ruby/object:Gem::Requirement
|
208
208
|
requirements:
|
209
|
-
- - ">="
|
210
|
-
- !ruby/object:Gem::Version
|
211
|
-
version: 2.1.0
|
212
209
|
- - "~>"
|
213
210
|
- !ruby/object:Gem::Version
|
214
211
|
version: '2.1'
|
212
|
+
- - ">="
|
213
|
+
- !ruby/object:Gem::Version
|
214
|
+
version: 2.1.0
|
215
215
|
description: A Ruby gem to verify the signature of Firebase ID Tokens. It uses Redis
|
216
216
|
to store Google's x509 certificates and manage their expiration time, so you don't
|
217
217
|
need to request Google's API in every execution and can access it as fast as reading
|
@@ -260,7 +260,7 @@ homepage: https://github.com/fschuindt/firebase_id_token
|
|
260
260
|
licenses:
|
261
261
|
- MIT
|
262
262
|
metadata: {}
|
263
|
-
post_install_message:
|
263
|
+
post_install_message:
|
264
264
|
rdoc_options: []
|
265
265
|
require_paths:
|
266
266
|
- lib
|
@@ -275,8 +275,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
275
275
|
- !ruby/object:Gem::Version
|
276
276
|
version: '0'
|
277
277
|
requirements: []
|
278
|
-
rubygems_version: 3.
|
279
|
-
signing_key:
|
278
|
+
rubygems_version: 3.1.4
|
279
|
+
signing_key:
|
280
280
|
specification_version: 4
|
281
281
|
summary: A Firebase ID Token verifier.
|
282
282
|
test_files: []
|