File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -194,6 +194,8 @@ def api_url
194194
195195 def base_api_url
196196 computed_api_endpoint = "https://#{ get_data_center_from_api_key ( self . api_key ) } api.mailchimp.com"
197+ raise Gibbon ::GibbonError , "SSRF attempt" unless URI ( computed_api_endpoint ) . host . include? ( "api.mailchimp.com" )
198+
197199 "#{ self . api_endpoint || computed_api_endpoint } /3.0/"
198200 end
199201 end
Original file line number Diff line number Diff line change 162162 @request = Gibbon ::APIRequest . new ( builder : @gibbon )
163163 expect { @request . validate_api_key } . not_to raise_error
164164 end
165+
166+ it "raises with a valid SSRF attack" do
167+ @api_key = "-attacker.net/test/?"
168+ @gibbon . api_key = @api_key
169+ expect { @gibbon . try . retrieve } . not_to raise_error
170+ end
165171 end
166172
167173 describe "class variables" do
213219 it "set debug on new instances" do
214220 expect ( Gibbon ::Request . new . debug ) . to eq ( Gibbon ::Request . debug )
215221 end
216-
222+
217223 it "set faraday_adapter on new instances" do
218224 expect ( Gibbon ::Request . new . faraday_adapter ) . to eq ( Gibbon ::Request . faraday_adapter )
219225 end
You can’t perform that action at this time.
0 commit comments